【问题标题】:Case Sensitive collation in MySQLMySQL 中区分大小写的排序规则
【发布时间】:2011-06-01 07:36:54
【问题描述】:

MySQL 中是否有任何支持区分大小写的排序规则类型。 我在 MySQL 中有所有类型的排序规则,它们的名称末尾都有 _ci,因此它们是不区分大小写的排序规则。

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    根据 MySQL 手册 http://dev.mysql.com/doc/refman/5.0/en/charset-mysql.html,您应该能够将排序规则设置为 _cs 以区分大小写。你可以通过执行SHOW COLLATION WHERE COLLATION LIKE "%_cs"查询得到_cs排序规则的列表


    经过一番研究:

    显然 MySQL 中还没有 utf8_*_cs。如果您需要对 utf8 字段进行区分大小写的排序规则,则应使用 utf8_bin。这会搞砸ORDER BY,但这可以通过ORDER BY column COLLATE utf8_general_ci 修复

    来源:http://forums.mysql.com/read.php?103,19380,200971#msg-200971http://forums.mysql.com/read.php?103,156527,198794#msg-198794

    【讨论】:

    • This 附带 MySQL 8.0.1 及更高版本。
    • utf8mb4_bin 也存在,因为现在是 2019 年 :-)
    【解决方案2】:

    尝试以_bin 结尾的排序规则,例如latin1_binutf8_bin,具体取决于您的字符集。

    【讨论】:

    • 感谢 Neil IT 工作,当我将用户列设置为 utf8_bin 时,它只检索查询中指定的数据,尽管我有相同单词的数据,我的意思是 Keyur、keyur、KEYUR。无论如何谢谢......
    【解决方案3】:

    新版本的 MySQL(8.0.1 及更高版本)(最终)带有一组 utf8mb4_*_0900_as_cs 排序规则。

    更多信息here

    【讨论】:

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