MySQL字符类对阿拉伯文本列无效问题咨询
解决MySQL中阿拉伯字符类匹配返回空集的问题
哦,这个问题我之前碰到过!MySQL里的LIKE操作符其实不支持正则表达式里的[...]字符类语法哦,你现在的查询其实是在找结尾严格是[بل]ت的字符串,而不是以ب或者ل作为倒数第二个字符、ت作为最后一个字符的内容,难怪返回空集啦~
给你两个关键的修正点:
- 替换匹配操作符:把
LIKE换成REGEXP(或者RLIKE,两者在MySQL里是等价的),因为只有这两个操作符支持正则表达式的语法。 - 调整正则规则:加上
$锚点来指定匹配字符串的结尾,确保我们只找以[بل]ت收尾的内容。
修正后的查询语句如下:
select hadith_raw_ar from view_hadith_in_book where hadith_raw_ar REGEXP '[بل]ت$';
另外补充一个小提醒:要确保你的表和hadith_raw_ar字段的字符集设置为支持阿拉伯语的编码(比如utf8mb4),不然可能会因为字符编码不兼容导致匹配失败哦。
内容的提问来源于stack exchange,提问作者Fatima Zohra
相关产品推荐
相关产品推荐

