De karaktersets en sorteringen van MySQL kunnen worden geïnterpreteerd als een top-down lijst van geprioriteerde items. De bovenste heeft de minste prioriteit en de onderste heeft de meeste prioriteit.
Prioriteitsvolgorde waarbij de hoogste de minste prioriteit is:
- Serversortering
- Verbindingsspecifieke sortering
- Databasesortering
- Tabelsortering
- Kolomsortering
- Query-sortering (met behulp van
CAST
ofCONVERT
)
De serversortering wordt ingesteld door de server, die is ingesteld in my.cnf
of wanneer de server is gebouwd op basis van broncode. Standaard is dit meestal latin1
of utf8
, afhankelijk van uw platform.
De verbindingsspecifieke sortering wordt ingesteld door de client met behulp van een query zoals SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';
. De meeste clients stellen geen verbindingsspecifieke sortering in, dus de server zal zijn eigen standaard gebruiken, zoals hierboven uitgelegd.
De database-sortering wordt ingesteld tijdens het maken van de database, of handmatig door deze later bij te werken. Als u er geen opgeeft, wordt de sortering op het eerstvolgende hogere niveau gebruikt, ofwel de verbindingsspecifieke of de serversortering.
De tabelsortering is hetzelfde als de databasesortering, behalve als het leeg wordt gelaten, zal het de database als standaard gebruiken, dan verbindingsspecifiek en dan tenslotte de serversortering.
De kolomsortering gebruikt de sortering van de tabel als standaard, en als er geen sortering is ingesteld, zal het de keten opvolgen om een te gebruiken sortering te vinden, waarbij het stopt bij de server als alle andere niet zijn ingesteld.
De query-sortering wordt gespecificeerd in de zoekopdracht met behulp van CAST
of CONVERT
, maar anders wordt de volgende beschikbare sortering in de keten gebruikt. U kunt dit alleen instellen als u een functie gebruikt.
Raadpleeg ook de handleiding pagina Ondersteuning tekenset .