根据定义,MySQL 字符类 [...] 匹配括号内的任何字符。所以我用它来表示阿拉伯字符。它每次都给我空集。 这是我的查询:
select hadith_raw_ar from view_hadith_in_book where hadith_raw_ar like '%[بل]ت';
最佳答案
对于旧版本,您无法使用带有 LIKE 或 RLIKE 的字符类以及非 latin1 字符集。 (至少不会,并期望得到正确的结果。)
REGEXP
很蹩脚。它只查看字节;字符类中有 6 个字节,其中一些是重复的。这是十六进制:D8 AA D8 A8 D9 84
。
有时您会碰巧从REGEXP
中得到“正确”的答案。 MariaDB 有一个不错的 REGEXP。例如,SELECT '٪' REGEXP '[Ña]';
返回 true。请注意,我正在测试阿拉伯百分号 - 十六进制 D9AA
。请注意我是如何选择 D9 的,它存在于一些阿拉伯字符和 AA 中。
MySQL 8.0 手册暗示 REGEXP 可能对阿拉伯语正确工作。 (但不适用于表情符号和一些汉字。)MariaDB 从 10.0.5 开始就内置了 PCRE。
关于mysql - 字符类不适用于阿拉伯文本列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50522181/