En sträng i MySQL har en teckenuppsättning och en sortering . Utf8 är teckenuppsättningen och utf8_bin är en av dess sammanställningar. För att jämföra din sträng literal med en utf8-kolumn, konvertera den till utf8 genom att prefixa den med _charset-notationen:
_utf8 'Something'
Nu är en sortering endast giltig för vissa teckenuppsättningar. Det skiftlägeskänsliga sortering för utf8 verkar vara utf8_bin, vilket du kan specificera som:
_utf8 'Something' collate utf8_bin
Med dessa konverteringar bör frågan fungera:
select * from page where pageTitle = _utf8 'Something' collate utf8_bin
Prefixet _charset fungerar med strängliterals. För att ändra teckenuppsättningen för ett fält finns KONVERTERA ... ANVÄNDA. Detta är användbart när du vill konvertera fältet pageTitle till en annan teckenuppsättning, som i:
select * from page
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'
För att se tecknet och sorteringen för en kolumn som heter 'col' i en tabell som heter 'TAB', försök:
select distinct collation(col), charset(col) from TAB
En lista över alla teckenuppsättningar och sorteringar kan hittas med:
show character set
show collation
Och alla giltiga sorteringar för utf8 kan hittas med:
show collation where charset = 'utf8'