sql >> Database teknologi >  >> RDS >> Mysql

Jeg får dobbelte resultater fra mysql-forespørgsel, når jeg bruger internationale tegn, dvs. Å/Ä=A &Ö=O,

Dit "problem" er utf8_unicode_ci sammenstilling. Denne sortering udfører "tegnudvidelser", hvilket betyder, at Umlauts og deres grundtegn behandles som ens selv i en = sammenligning :

A = Ä
O = Ö
...

Det andet eksempel på denne mySQL-manualside forklarer problemet:9.1.7.8. Eksempler på effekten af ​​sortering

Hvad du skal gøre er enten at skifte til en sortering, der skelner mellem umlyd og grundtegn (f.eks. utf8_general_ci eller utf8_general_bin ) eller skift kun til en anden sortering, når du laver sammenligningen:

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

dette er naturligvis langsommere, fordi sorteringskonverteringen skal udføres for hver post under forespørgslen.



  1. PostgreSQL CASE ... SLUT med flere betingelser

  2. Vælg den seneste række med GROUP BY i MySQL

  3. Tilføjelse af flere avancerede funktioner såsom administration af kategorier og afstemning om tråde og indlæg

  4. Brug af indlejrede transaktioner i Oracle