【问题标题】:MariaDB select wrong unicode characterMariaDB 选择了错误的 unicode 字符
【发布时间】:2016-04-14 20:59:53
【问题描述】:

插入table_name (col_name) 值('????');

SELECT * FROM table_name WHERE col_name = '????';

我认为第二个查询不需要返回任何行,但是 ????被退回。

该表是 utf8mb4 排序规则 utf8mb4_unicode_ci。

与ci有关吗?我想保留它。

【问题讨论】:

  • 您使用的是 MySQL 还是 MariaDB?尽管 MariaDB 是(应该是) MySQL 的替代品,但我希望在这种情况下,行为可能会有所不同,因此应该删除其中一个标签。

标签: unicode mariadb utf8mb4


【解决方案1】:
SELECT '?' = '?' COLLATE utf8mb4_unicode_ci,
       '?' = '?' COLLATE utf8mb4_unicode_520_ci;

产量 1 和 0。

也就是说,utf8mb4_unicode_ci 将 Emoji 视为平等,但 utf8mb4_unicode_520_ci 将它们视为不同。

所以,将col_name 的排序规则更改为utf8mb4_unicode_520_ci

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 1970-01-01
    • 2014-02-09
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多