Een string in MySQL heeft een tekenset en een sortering . Utf8 is de tekenset en utf8_bin is een van de verzamelingen. Om uw letterlijke tekenreeks te vergelijken met een utf8-kolom, converteert u deze naar utf8 door er de _charset-notatie voor te plaatsen:
_utf8 'Something'
Nu is een sortering alleen geldig voor sommige tekensets. De hoofdlettergevoelige sortering voor utf8 lijkt utf8_bin te zijn, wat u als volgt kunt specificeren:
_utf8 'Something' collate utf8_bin
Met deze conversies zou de zoekopdracht moeten werken:
select * from page where pageTitle = _utf8 'Something' collate utf8_bin
Het voorvoegsel _charset werkt met letterlijke tekenreeksen. Om de tekenset van een veld te wijzigen, is er CONVERT ... USING. Dit is handig als u het veld pageTitle naar een andere tekenset wilt converteren, zoals in:
select * from page
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'
Om het teken en de sortering te zien voor een kolom met de naam 'col' in een tabel met de naam 'TAB', probeert u:
select distinct collation(col), charset(col) from TAB
Een lijst van alle tekensets en sorteringen is te vinden met:
show character set
show collation
En alle geldige sorteringen voor utf8 zijn te vinden met:
show collation where charset = 'utf8'