sql >> Databasteknik >  >> RDS >> Mysql

Jag får dubbla resultat från mysql-frågan när jag använder internationella tecken, dvs Å/Ä=A &Ö=O,

Ditt "problem" är utf8_unicode_ci sammanställning. Den sammanställningen gör "teckenexpansions", vilket betyder att Umlauts och deras bastecken behandlas som samma även i en = jämförelse :

A = Ä
O = Ö
...

Det andra exemplet på denna mySQL-manualsida förklarar problemet:9.1.7.8. Exempel på effekten av sortering

Vad du skulle behöva göra är att antingen byta till en sammanställning som skiljer mellan omljud och bastecken (t.ex. utf8_general_ci eller utf8_general_bin ) eller byt till en annan sortering endast när du gör jämförelsen:

select * from users where username like 'Björn' COLLATE utf8_general_ci;

detta är uppenbarligen långsammare, eftersom sorteringskonverteringen måste göras för varje post under sökningen.



  1. LISTAGG Fråga ORA-00937:inte en gruppfunktion i en grupp

  2. CONCAT() Funktion i Oracle

  3. Generera ett unikt användarnamn från för- och efternamn?

  4. Är InnoDB (MySQL 5.5.8) rätt val för flera miljarder rader?