使用'regexp'的相同查询在mysql中给出不同的结果

时间:2015-11-07 11:00:10

标签: mysql regex unicode rlike

基本上,我想要的是理解为什么

select 'aa' regexp '[h]'返回0和

select 'აა' regexp '[ჰ]'会返回1吗?

检查FIDDLE

1 个答案:

答案 0 :(得分:1)

我认为MqSQL正则表达式还不支持utf-8。请参阅bug 3024112.5.2 Regular Expressions

  

警告

     

REGEXP和RLIKE运算符以字节方式工作,因此它们不是多字节安全的,并且可能会产生多字节字符集的意外结果。此外,这些运算符通过字节值比较字符,即使给定的排序规则将重音字符视为相等,重音字符也可能无法比较。

您可以匹配没有字符类的字节序列:SELECT 'აა' REGEXP 'ჰ'返回0