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

Czy istnieje sortowanie utf8_unicode_cs?

Natknąłem się na ten sam problem i po pewnym Googlingu wydaje się, że MySQL go nie zawiera. Aby „zasymulować to”, jak to ująłeś,

1) Aby zapewnić rozróżnianie wielkości liter w DB:ustaw kolumnę tabeli na utf8_bin zestawienie
Pozwala to:

  • ścisłe SELECTy:SELECT "Joe" NIE zwróci wierszy z "joe" / "joE" / "jOe" / etc
  • ścisły indeks UNIQUE:kolumna z indeksem UNIQUE będzie traktować różnice wielkości liter jako różne wartości. Na przykład, jeśli używane jest sortowanie utf8_unicode_ci, wstawienie znaku „Jan” do tabeli, która już zawiera słowo „Jan”, wywoła błąd „Zduplikowany klucz”. Jeśli używany jest ut8_bin, wstawienie „Joe” będzie działać dobrze.

2) Aby uzyskać prawidłową kolejność w wynikach:dodaj sortowanie do zapytania SQL:

SELECT ... ORDER BY column COLLATE utf8_unicode_ci


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL/InnoDB i długotrwałe zapytania

  2. Efektywne zarządzanie zmianami danych

  3. php exec() - mysqldump tworzy pusty plik

  4. Jak nawiązać połączenie z bazą danych w aplikacji Apache Tomcat za pomocą Struts 2?

  5. Jak wyodrębnić wartość liczbową z ciągu w zapytaniu MySQL?