Die Zeichensätze und Sortierungen von MySQL können als Top-down-Liste priorisierter Elemente interpretiert werden. Das oberste hat die geringste Priorität und das unterste die höchste Priorität.
Prioritätsreihenfolge, wobei die oberste die niedrigste Priorität ist:
- Serversortierung
- Verbindungsspezifische Sortierung
- Datenbankabgleich
- Tabellenzusammenstellung
- Spaltensortierung
- Abfragesortierung (mit
CAST
oderCONVERT
)
Die Serversortierung wird vom Server gesetzt, der entweder innerhalb von my.cnf
gesetzt wird oder als der Server aus dem Quellcode erstellt wurde. Standardmäßig ist dies normalerweise latin1
oder utf8
, abhängig von Ihrer Plattform.
Die verbindungsspezifische Sortierung wird vom Client mit einer Abfrage wie SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
gesetzt . Die meisten Clients legen keine verbindungsspezifische Sortierung fest, daher verwendet der Server seine eigene Standardeinstellung, wie oben erläutert.
Die Datenbanksortierung wird während der Datenbankerstellung oder manuell durch spätere Aktualisierung festgelegt. Wenn Sie keine angeben, wird die Sortierung der nächsthöheren Ebene verwendet, die entweder die verbindungsspezifische oder die Server-Sortierung ist.
Die Tabellensortierung ist dasselbe wie die Datenbanksortierung, außer wenn es leer gelassen wird, wird die Datenbank als Standard verwendet, dann verbindungsspezifisch und schließlich die Serversortierung.
Die Spaltensortierung verwendet die Sortierung der Tabelle als Standard, und wenn keine Sortierung festgelegt ist, folgt es der Kette, um eine zu verwendende Sortierung zu finden, und hält am Server an, wenn alle anderen nicht festgelegt wurden.
Die Abfragesortierung wird in der Abfrage mit CAST
angegeben oder CONVERT
, verwendet aber ansonsten die nächste verfügbare Sortierung in der Kette. Es gibt keine Möglichkeit, dies festzulegen, es sei denn, Sie verwenden eine Funktion.
Bitte beachten Sie auch die Handbuchseite Character Set Support .