Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Existiert eine utf8_unicode_cs-Sortierung?

Ich bin auf das gleiche Problem gestoßen und nach einigem Googeln scheint es, dass MySQL es nicht enthält. Um es zu "simulieren", wie Sie es ausdrücken,

1) Um Groß- und Kleinschreibung in der DB sicherzustellen:Setzen Sie die Tabellenspalte auf utf8_bin Sortierung
Dies ermöglicht:

  • strenge SELECTs:SELECT "Joe" gibt KEINE Zeilen mit "joe" / "joE" / "jOe" / etc
  • zurück
  • strenger UNIQUE-Index:Eine Spalte mit einem UNIQUE-Index behandelt Unterschiede zwischen Groß- und Kleinschreibung als unterschiedliche Werte. Wenn zum Beispiel eine utf8_unicode_ci-Sortierung verwendet wird, löst das Einfügen von „Joe“ in eine Tabelle, die bereits „Joe“ enthält, einen „Doppelter Schlüssel“-Fehler aus. Wenn ut8_bin verwendet wird, funktioniert das Einfügen von "Joe" einwandfrei.

2) Um die richtige Reihenfolge der Ergebnisse zu erhalten:Fügen Sie die Sortierung zur SQL-Abfrage hinzu:

SELECT ... ORDER BY column COLLATE utf8_unicode_ci