Ищем нечувствительную к регистру сортировку MySQL, где a! = Ä

Я ищу сопоставление MySQL для UTF8, которое нечувствительно к регистру и различает «a» и «ä» (или, в более общем смысле, между umlauted / акцентированными символами и их «чистой» формой). utf8_general_ci делает первое, utf8_bin второе, бот никто не делает и то, и другое. Если такого сопоставления нет, что я могу сделать, чтобы максимально приблизиться к предложению WHERE?


person Simon    schedule 11.01.2010    source источник


Ответы (4)


Я бы порекомендовал использовать utf8_bin, а в предложении WHERE принудительно использовать обе стороны сравнения в верхнем или нижнем регистре.

person Andy West    schedule 11.01.2010

Здесь он отлично работает с utf8_german2_ci в качестве сопоставления:

SELECT * FROM tablename WHERE fieldname LIKE "würz%" COLLATE utf8_german2_ci
person cweiske    schedule 02.03.2017

Я проверил utf8_bin вот так

CREATE TABLE tmp2 (utf8_bin VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
INSERT INTO tmp2 VALUES ('nói');

select * from tmp2 where utf8_bin='noi';
person BjeMTj    schedule 29.07.2017

Вы можете попробовать utf8_swedish_ci, он нечувствителен к регистру и различает a и ä (но обрабатывает, например, ü как y ).

Параметры сортировки зависят от языка, и кажется, что у немецкого языка нет собственного сопоставления в MySQL. (Я просмотрел ваш профиль, там написано, что вы немец.)

person Christian Davén    schedule 10.10.2010