mi piacerebbe essere in grado di fare le query che normalizzano i caratteri accentati, in modo che, ad esempio:normalizzare caratteri accentati in MySQL query
é, è, and ê
sono tutti trattati come 'e', nelle query utilizzando '=' e come'. Ho una riga con campo nome utente impostato su 'rené' e mi piacerebbe poterlo abbinare su entrambi con 'rene' e 'rené'.
Sto tentando di farlo con la clausola 'collate' in MySQL 5.0.8. Ottengo il seguente errore:
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, il mio tavolo è stato creato con:
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
Cosa succede se cambi il set di caratteri della tabella in 'utf8'? – friedo
friedo- non è quello che DEFAULT CHARSET = utf8 fa? (In realtà non ho creato questo tavolo, ma l'ho decodificato tramite 'show create table User'). –
Sì, questo è quello che dovrebbe fare. Non so perché MySQL sembra pensare che il classificatore sia latin1 se lo si ha impostato su utf8, comunque. – friedo