【问题标题】:Looking for case insensitive MySQL collation where "a" != "ä"寻找不区分大小写的 MySQL 排序规则,其中 "a" != "ä"
【发布时间】:2011-01-03 21:29:35
【问题描述】:

我正在寻找 UTF8 的 MySQL 排序规则,它不区分大小写并区分“a”和“ä”(或更一般地说,区分变音符号/重音字符及其“纯”形式)。 utf8_general_ci 做前者,utf8_bin 后者,bot none 两者都做。如果没有这样的排序规则,我该怎么做才能在WHERE 子句中尽可能接近?

【问题讨论】:

    标签: mysql utf-8 collation case-insensitive


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以试试utf8_swedish_ci,它不区分大小写,并且区分 aä(但将 ü 视为 是的)。

      排序规则取决于语言,而且德语似乎没有自己的collation in MySQL。 (我看过你的个人资料,上面写着你是德国人。)

      【讨论】:

        【解决方案3】:

        使用utf8_german2_ci 作为排序规则在这里可以正常工作:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2011-06-01
            • 2011-05-23
            • 2019-06-19
            • 2012-05-08
            • 2016-12-19
            • 2011-05-11
            • 2013-12-31
            • 2014-05-10
            • 2015-07-07
            相关资源
            最近更新 更多