mySQL select í 返回带有 i 的结果

Posted

技术标签:

【中文标题】mySQL select í 返回带有 i 的结果【英文标题】:mySQL select í returns results with i 【发布时间】:2015-08-23 09:07:53 【问题描述】:

我设置了一个表,其中字段为TEXT utf8_general_ci

字段数据设置为Jovíkhan(其中 í 实际上是 ALT-161)。

我搜索Jovikhan(常规 i,而不是 ALT-161),我返回了所有结果,就好像我实际使用了 ALT-161 í。

SELECT * FROM Table WHERE Field = 'Jovikhan';

让我有点发疯......我目前直接在 phpMyAdmin 中遇到这个问题......为什么它会返回这些字段,特别是如果我使用 = 'Jovikhan'LIKE '%Jov%'

【问题讨论】:

What are the diffrences between utf8_general_ci and utf8_unicode_ci? 的可能重复项 How to conduct an Accent Sensitive search in mysql 的可能副本。 【参考方案1】:

utf_general_ci 中的 _ci 表示不区分大小写。这会导致 MySQL 将 ií 视为相同。您需要在查询中添加COLLATE utf8_bin

SELECT * FROM Table WHERE Field = 'Jovikhan' COLLATE utf8_bin;

更多讨论请见this post。

【讨论】:

您为什么要引用另一个与OP的问题基本相同且答案与您相同的线程?请改为关闭副本。 @GolezTrol 我觉得可以更清楚地说明关于该问题的已接受答案的第一部分。但是,我也投票结束。 非常感谢...我确实进行了搜索,但并没有发现任何突出的内容...也许您不应该将其标记为重复,因为有人可能会觉得这很有用。

以上是关于mySQL select í 返回带有 i 的结果的主要内容,如果未能解决你的问题,请参考以下文章

mysql练习

试图制作返回 mysql 'SELECT * FROM' 结果的函数,最终返回 undefined

Java结果集最大列?

为啥 MySQL View 和同一个 View 的底层 SELECT 查询返回不同的结果?

带有mysql查询的异步函数不会返回查询结果node.js

存储过程中的 MySQL select 语句返回的结果与 proc 外部不同