Строка в MySQL имеет набор символов и параметры сортировки . Utf8 - это набор символов, а utf8_bin - одно из его сопоставлений. Чтобы сравнить строковый литерал со столбцом utf8, преобразуйте его в utf8, поставив перед ним префикс _charset:
_utf8 'Something'
Теперь параметры сортировки действительны только для некоторых наборов символов. Кажется, что регистр чувствительный для utf8 имеет вид utf8_bin, который можно указать как:
_utf8 'Something' collate utf8_bin
При этих преобразованиях запрос должен работать:
select * from page where pageTitle = _utf8 'Something' collate utf8_bin
Префикс _charset работает со строковыми литералами. Чтобы изменить набор символов поля, существует CONVERT ... USING. Это полезно, если вы хотите преобразовать поле pageTitle в другой набор символов, например:
select * from page
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'
Чтобы увидеть символ и параметры сортировки для столбца с именем «col» в таблице с именем «TAB», попробуйте:
select distinct collation(col), charset(col) from TAB
Список всех наборов символов и сопоставлений можно найти с помощью:
show character set
show collation
И все допустимые параметры сортировки для utf8 можно найти с помощью:
show collation where charset = 'utf8'