MySQL Regexp dot(any)与强调字符不匹配

时间:2014-10-15 17:08:34

标签: mysql regex

根据documentation .应该匹配任何字符,但它不会匹配突出显示的字符。

mysql> select 'test' regexp 't.st';
+----------------------+
| 'test' regexp 't.st' |
+----------------------+
|                    1 |
+----------------------+
1 row in set (0.00 sec)

mysql> select 'tést' regexp 't.st';
+-----------------------+
| 'tést' regexp 't.st'  |
+-----------------------+
|                     0 |
+-----------------------+

我做错了什么或者无论如何都要匹配任何角色,包括特殊/突出的角色?

我的数据库排序规则为utf8_general_ci,我在测试查询中使用collat​​e命令尝试了一些不同的排序规则,但没有成功。

1 个答案:

答案 0 :(得分:2)

关注MySQL文档:

  

警告

     

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

所以你不应该这样做。

来源:http://dev.mysql.com/doc/refman/5.0/en/regexp.html