我有一个带有阿拉伯文本的表格。有两个唯一的行:
阿兹
第一个由以下字符组成: 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/