Zestawy znaków i sortowania MySQL mogą być interpretowane jako odgórna lista pozycji priorytetowych. Najwyższy ma najmniejszy priorytet, a najniższy ma najwyższy priorytet.
Kolejność pierwszeństwa, gdzie najwyższy to najniższy priorytet:
- Sortowanie serwerów
- Sortowanie specyficzne dla połączenia
- Sortowanie bazy danych
- Układanie tabel
- Sortowanie kolumn
- Sortowanie zapytań (za pomocą
CAST
lubCONVERT
)
Sortowanie serwerów jest ustawiany przez serwer, który jest ustawiony wewnątrz my.cnf
lub gdy serwer został zbudowany z kodu źródłowego. Domyślnie będzie to zwykle latin1
lub utf8
, w zależności od platformy.
Porównanie właściwe dla połączenia jest ustawiana przez klienta za pomocą zapytania, takiego jak SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
. Większość klientów nie ustawia sortowania specyficznego dla połączenia, więc serwer użyje swoich własnych ustawień domyślnych, jak wyjaśniono powyżej.
Sortowanie bazy danych jest ustawiana podczas tworzenia bazy danych lub ręcznie, aktualizując ją później. Jeśli go nie określisz, użyje następnego sortowania wyższego poziomu, które będzie albo sortowaniem specyficznym dla połączenia, albo serwerem.
Układanie tabel jest takie samo jak sortowanie bazy danych, z wyjątkiem tego, że jeśli pozostawione puste, użyje bazy danych jako domyślnej, następnie zależnej od połączenia, a na końcu sortowania serwera.
Sortowanie kolumn używa sortowania tabeli jako domyślnego, a jeśli nie ma ustawionego sortowania, podąża za łańcuchem, aby znaleźć sortowanie do użycia, zatrzymując się na serwerze, jeśli wszystkie inne nie zostały ustawione.
zestawianie zapytań jest określony w zapytaniu za pomocą CAST
lub CONVERT
, ale w przeciwnym razie użyje następnego dostępnego sortowania w łańcuchu. Nie można tego ustawić, chyba że używasz funkcji.
Zapoznaj się również ze stroną podręcznika Obsługa zestawu znaków .