寻找不区分大小写的MySQL排序规则,其中“a”!=“ä”

时间:2010-01-11 19:19:14

标签: mysql utf-8 collation case-insensitive

我正在寻找UTF8的MySQL排序规则,它不区分大小写,区分“a”和“ä”(或者更常见的是,在umlauted / accented字符和它们的“纯”形式之间)。前者是utf8_general_ci,后者是utf8_bin,两者都没有。如果没有这样的整理,我该怎样做才能在WHERE条款中尽可能接近?

4 个答案:

答案 0 :(得分:6)

我的建议是使用utf8_bin并在你的WHERE子句中强制比较的两面为大写或小写。

答案 1 :(得分:0)

这里使用utf8_german2_ci作为整理工作正常:

SELECT * FROM tablename WHERE fieldname LIKE "würz%" COLLATE utf8_german2_ci

答案 2 :(得分:0)

我这样检查了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';

答案 3 :(得分:-1)

你可以尝试utf8_swedish_ci,它既不区分大小写又区分 a ä(但是对待ü就像< EM>ÿ)。

整理是依赖于语言的,似乎德语没有自己的collation in MySQL。 (我看了你的个人资料,说你是德国人。)