MySQL:s teckenuppsättningar och sammanställningar kan tolkas som en top-down lista med prioriterade objekt. Det översta är minst prioritet och det lägsta har mest prioritet.
Prioritetsordning där översta är minsta prioritet:
- Serversortering
- Anslutningsspecifik sortering
- Databassamling
- Tabellsortering
- Kolumnsamling
- Frågesortering (med
CAST
). ellerCONVERT
)
serversorteringen ställs in av servern, som ställs antingen inuti my.cnf
eller när servern byggdes från källkod. Som standard är detta vanligtvis latin1
eller utf8
, beroende på din plattform.
Den anslutningsspecifika sorteringen ställs in av klienten med en fråga som SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
. De flesta klienter ställer inte in en anslutningsspecifik sortering, så servern kommer att använda sin egen standard som förklaras ovan.
databassorteringen ställs in när databasen skapas, eller manuellt genom att uppdatera den senare. Om du inte anger en, kommer den att använda nästa sortering på högre nivå, som antingen skulle vara den anslutningsspecifika eller serversorteringen.
tabellsorteringen är samma som databassorteringen, förutom om den lämnas tom, kommer den att använda databasen som standard, sedan anslutningsspecifik och sedan serverns sortering.
kolumnsamlingen använder tabellens sortering som standard, och om det inte finns någon sorteringsuppsättning kommer den sedan att följa upp kedjan för att hitta en sortering att använda, och stannar vid servern om alla andra inte var inställda.
frågesorteringen anges i frågan med CAST
eller CONVERT
, men annars kommer att använda nästa tillgängliga sortering i kedjan. Det går inte att ställa in detta om du inte använder en funktion.
Se även manualsidan Stöd för teckenuppsättningar .