Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Otrzymuję podwójne wyniki z zapytania mysql, gdy używam znaków międzynarodowych, tj. Å/Ę=A i Ö=O,

Twoim „problemem” jest utf8_unicode_ci porównanie. To porównywanie wykonuje „rozwijanie znaków”, co oznacza, że ​​umlauty i ich znaki podstawowe są traktowane jako takie same nawet w = porównanie :

A = Ä
O = Ö
...

Drugi przykład na tej stronie podręcznika mySQL wyjaśnia problem:9.1.7.8. Przykłady efektu sortowania

Musisz albo przełączyć się na sortowanie, które rozróżnia znak umlautowy i podstawowy (np. utf8_general_ci lub utf8_general_bin ) lub przełącz się na inne zestawienie tylko podczas porównywania:

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

jest to oczywiście wolniejsze, ponieważ konwersja sortowania musi być wykonana dla każdego rekordu podczas zapytania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Doktryna:O AKTUALIZACJI ZDUPLIKOWANEGO KLUCZA

  2. Hasło nie jest weryfikowane za pomocą funkcji password_verify

  3. Jak sobie z tym poradzić Serwer MySQL działa z opcją --secure-file-priv, więc nie może wykonać tej instrukcji na komputerze Mac

  4. Importowanie JSON do Mysql

  5. Golang Wstaw NULL do sql zamiast pustego ciągu