我在一个表中有一列是字符串,其中一些字符串包含泰语,因此泰语字符串的示例如下:
อักษรไทย
有没有这种方法可以在列中查询/查找这样的字符串?
最佳答案
您可以在泰语Unicode块(即U+0E01和U+0E5B之间)中搜索以字符开头的字符串:
WHERE string BETWEEN 'ก' AND '๛'
当然,这不包括以其他字符开头的字符串,也不包括泰语,比如以数字开头的字符串。为此,必须使用一个性能更低的正则表达式:
WHERE string RLIKE '[ก-๛]'
但是,请注意手册中的警告:
警告
REGEXP
和RLIKE
运算符按字节方式工作,因此它们不是多字节安全的,并且可能使用多字节字符集产生意外的结果。此外,这些运算符按字节值比较字符,并且即使给定的排序规则将重音字符视为相等,重音字符也不能比较为相等。关于mysql - 如何在SQL查询中检测泰语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18887735/