【问题标题】:MySql equality between o and øo和ø之间的MySql相等
【发布时间】:2019-10-09 12:36:24
【问题描述】:

我在查询时遇到了一些问题。 我想运行类似的查询

select *
from products
where MATCH(author) against('jorgen')

问题在于,在我的数据库中,实际值为 jørgen,因此查询不会返回任何内容

【问题讨论】:

  • stackoverflow.com/questions/8647080/… 谈论波兰语并建议在测试中使用限定符并使用utf8_general_ci。这是可能与这个问题不同的 3 件事,所以我投票决定重新开放。

标签: mysql character-encoding full-text-search collation


【解决方案1】:

你用的是什么COLLATION?大多数人将ø 视为介于op 之间的不同字母。请参阅 mysql.rjweb.org/utf8_collat​​ions.html。 utf8_unicode_520_ci 是唯一将 øo 视为“相等”的排序规则(在 5.7 或更早版本中)。

MySQL 8.0 的 0900 排序规则倾向于将这两个字母视为相等。见 mysql.rjweb.org/utf8mb4_collat​​ions.html

我怀疑语法不允许您在 FULLTEXT 测试期间更改排序规则,所以我认为您只能选择不同的 COLLATION 并重建 FT 索引。你可能想升级到 MySQL 8。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2017-08-20
    • 1970-01-01
    相关资源
    最近更新 更多