Ich möchte in der Lage sein, Anfragen zu tun, die Zeichen mit Akzent normalisieren, so dass zum Beispiel:Normalisierungs akzentuierte Zeichen in MySQL-Abfragen
é, è, and ê
alle behandelt wie ‚e‘ sind, in Abfragen mit ‚=‘ und wie'. Ich habe eine Zeile mit Benutzername Feld auf "rené" eingestellt, und ich würde gerne in der Lage sein, mit beiden "rene" und "rené" übereinstimmen.
Ich versuche, dies mit der Klausel 'collate' in MySQL 5.0.8 zu tun. Ich erhalte den folgenden Fehler:
mysql> select * from User where username = 'rené' collate utf8_general_ci;
ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
FWIW, mein Tisch war mit erstellt:
CREATE TABLE `User` (
`id` bigint(19) NOT NULL auto_increment,
`username` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniqueUsername` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=56790 DEFAULT CHARSET=utf8
Was passiert, wenn Sie den Tabellenzeichensatz auf 'utf8' ändern? – friedo
friedrich- ist das nicht das was DEFAULT CHARSET = utf8? (Ich habe diese Tabelle nicht wirklich erstellt; ich habe sie über 'show create table User' zurückentwickelt). –
Ja, das ist es, was es tun soll. Ich weiß nicht, warum MySQL das Chartset für latin1 hält, wenn Sie es auf utf8 setzen. – friedo