View Full Version : [MySQL] confronto stringhe con accenti insensitive
Oggi ho piacevolmente scoperto che in MySQL 3.23 di default il confronto fra stringhe non è "accent sensitive", questo vuol dire che se in una query io scrivo una cosa del tipo :
SELECT * FROM Lettere WHERE lettera = 'a';
e nella tabella sono presenti tre record, ad esempio 'a' 'à' 'b' la query mi ritorna due righe, a à , invece di ritornare solo quella con 'a'
la "pezza" momentanea è stata quella di mettere l'ipotetico campo "lettera" come CHAR(1) BINARY.
Esiste un'altra soluzione, non sò, magari più ortodossa ?
Oppure non sò, sto sbagliando qualcosa ?
:mc:
Che io sappia MySQL 4.0 gestisce molto meglio i charset cme quello italiano...poi la 3.23 è ormai obsoleta...
sì, è vero, è obsoleta, ma quando ti dicono "devi usare questo"...
cmq il problema non credo sia di charset, credo che sia proprio una feature (li mortacci) di mysql !!!
Solo per farti un'esempio, al capitolo
"5.7.1.1 - Using the German Character Set"
dell'ultimo manuale di MySQL trovi scritta una cosa come questa
When comparing strings with LIKE, the one-character to two-character mapping is not done.
All letters are converted to uppercase. Accents are removed from all letters except ü, ä and ö .
Originariamente inviato da cavva81
sì, è vero, è obsoleta, ma quando ti dicono "devi usare questo"...
cmq il problema non credo sia di charset, credo che sia proprio una feature (li mortacci) di mysql !!!
Solo per farti un'esempio, al capitolo
"5.7.1.1 - Using the German Character Set"
dell'ultimo manuale di MySQL trovi scritta una cosa come questa
When comparing strings with LIKE, the one-character to two-character mapping is not done.
All letters are converted to uppercase. Accents are removed from all letters except ü, ä and ö .
Per ovviare a problemi del genere devi fare in modo di inserire solo lettere normali seguite dall'accento tipo: a'
Non puoi fare altrimenti...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.