Наборите от символи и съпоставките на MySQL могат да се интерпретират като списък отгоре надолу с приоритетни елементи. Най-горният е с най-малък приоритет, а най-долният е с най-висок приоритет.
Ред на приоритет, като най-горният е с най-малък приоритет:
- Сортиране на сървър
- Съпоставяне за специфична връзка
- Сортиране на база данни
- Сортиране на таблици
- Сортиране на колони
- Сортиране на заявки (с помощта на
CAST
илиCONVERT
)
Съпоставянето на сървъра се задава от сървъра, който е зададен или вътре в my.cnf
или когато сървърът е изграден от изходния код. По подразбиране това обикновено е latin1
или utf8
, в зависимост от вашата платформа.
Съпоставяне за специфична връзка се задава от клиента с помощта на заявка като SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
. Повечето клиенти не задават специфично за връзката сортиране, така че сървърът ще използва своя собствена подразбиране, както е обяснено по-горе.
Колирането на базата данни се задава по време на създаването на базата данни или ръчно, като се актуализира по-късно. Ако не посочите такова, то ще използва следващото сортиране от по-високо ниво, което ще бъде или специфично за връзката, или сортиране на сървъра.
Сортирането на таблицата е същото като сортирането на базата данни, освен ако остане празно, ще използва базата данни като своя подразбиране, след това специфично за връзката и накрая сортирането на сървъра.
Сортиране на колони използва съпоставянето на таблицата по подразбиране и ако няма зададено съпоставяне, то след това ще проследи веригата, за да намери съпоставяне, което да използва, спирайки на сървъра, ако всички останали не са зададени.
Колирането на заявката се посочва в заявката чрез CAST
или CONVERT
, но в противен случай ще използва следващата налична колация във веригата. Няма начин да зададете това, освен ако не използвате функция.
Моля, вижте също страницата с ръководство Поддръжка на набор от символи .