mysql - 阿拉伯语文本多个结果

标签 mysql utf-8

我有一个带有阿拉伯文本的表格。有两个唯一的行:

阿兹

第一个由以下字符组成:      0x0627、0x0650、0x0633
第二个由以下字符组成:0x0627、0x064F、0x0633

问题是,如果我查询其中任何一个,它们都会出现。这种情况在命令行和使用 phpmyadmin 时都会发生。以下是我输入的查询内容:

设置名称 utf8;
从音译中选择乌尔都语 WHERE urdu LIKE 'אс';

有什么想法吗?

最佳答案

这两个字符串的返回恰好是 MySQL 的一个特性(一个有用的特性!):SELECT 语句可以对字符的大小写或元音长度不敏感。此功能称为排序规则。 utf_unicode_ci 可能是您名为 urdu 的列上的排序规则。

但是如果需要,您可以在 WHERE 子句中控制它。

WHERE COLLATE utf_bin urdu = 'اِس'

(如果我弄乱了你的阿拉伯语,请原谅我;我对这种语言一无所知。)

但是,请考虑,一旦您完成调试并将其投入生产,MySQL 可能已经为您的应用程序提供了适当的结果。

另请注意,除非您希望部分匹配,否则不需要使用 LIKE。

关于mysql - 阿拉伯语文本多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980271/

相关文章:

MySQL SQL : SELECT (SELECT. .. 作为变量) FROM

mysql - 从mysql查询中选择第二长的时间

mysql修改默认字符集latin1为utf8

PHP4 到 PHP5 迁移字符编码。 latin1 与 utf8

javascript - JavaScript 添加的 HTML 输入中的 UTF-8

java - 使用 Java 处理 Excel 特殊字符

MySQL如何根据用户ID值将数据从一个表复制到另一个表

javascript - 我无法从 sql 查询中读取值

MySQL-在插入满足其他值的位置后触发更新另一个表中的列

c - 错误 : stray '\302' in program