Het belangrijkste punt van een databasesortering is bepalen hoe gegevens worden gesorteerd en vergeleken.
Hoofdlettergevoeligheid van tekenreeksvergelijkingen
SELECT "New York" = "NEW YORK";`
zal true retourneren voor een hoofdletterongevoelige sortering; false voor een hoofdlettergevoelige.
Welke sortering wat doet, kan worden afgelezen aan de _ci
en _cs
achtervoegsel in de naam van de sortering. _bin
collations doen binaire vergelijkingen (strings moeten 100% identiek zijn).
Vergelijking van umlauten/tekens met accenten
de sortering bepaalt ook of tekens met accenten worden behandeld als hun Latijnse tegenhangers in tekenreeksvergelijkingen.
SELECT "Düsseldorf" = "Dusseldorf";
SELECT "Èclair" = "Eclair";
zal true retourneren in het eerste geval; vals in het laatste. Je moet de beschrijving van elke sortering lezen om erachter te komen welke welke is.
Stringsortering
De sortering beïnvloedt de manier waarop strings worden gesorteerd.
Bijvoorbeeld
-
Umlauten
Ä Ö Ü
staan aan het einde van het alfabet in het fins/zweedse alfabetlatin1_swedish_ci
-
ze worden behandeld als
A O U
in Duitse DIN-1 sortering (latin_german1_ci
) -
en als
AE OE UE
in Duitse DIN-2 sortering (latin_german2_ci
). ("telefoonboek" sorteren) -
In
latin1_spanish_ci
, "ñ" (n-tilde) is een aparte letter tussen "n" en "o".
Deze regels zullen resulteren in verschillende sorteervolgorden wanneer niet-Latijnse karakters worden gebruikt.
Collaties gebruiken tijdens runtime
U moet een sortering voor uw tabel en kolommen kiezen, maar als u de prestatiehit niet erg vindt, kunt u databasebewerkingen tijdens runtime tot een bepaalde sortering dwingen met behulp van de COLLATE
trefwoord.
Dit sorteert table
door de name
kolom met Duitse DIN-2-sorteerregels:
SELECT name
FROM table
ORDER BY name COLLATE latin1_german2_ci;
COLLATE
gebruiken at runtime heeft gevolgen voor de prestaties, aangezien elke kolom tijdens de query moet worden geconverteerd. Denk dus twee keer na voordat u dit toepast, doe grote datasets.
MySQL-referentie:
- Tekensets en verzamelingen die MySQL ondersteunt
- Voorbeelden van het effect van sorteren
- Collatieproblemen