mysql 使用正则符号“[ ]”匹配中文失效
时间: 2023-11-28 19:05:51 浏览: 64
确实,在 MySQL 中使用正则表达式匹配中文时,使用 `[ ]` 匹配中文字符会失效。这是因为 `[ ]` 在正则表达式中表示字符集合,用于匹配其中的任意一个字符。而中文字符在 MySQL 中是以多字节字符集编码的,因此在正则表达式中无法使用 `[ ]` 直接匹配中文。
如果需要匹配中文字符,可以使用 Unicode 编码。例如,要匹配中文字符“张三”的话,可以使用 `\u` 转义字符加上该字符的 Unicode 编码,表示为 `\u5f20\u4e09`,则匹配中文字符的正则表达式可以写为:
```sql
SELECT * FROM table_name WHERE column_name REGEXP '[\u4e00-\u9fa5]';
```
其中,`[\u4e00-\u9fa5]` 表示匹配所有的中文字符。请注意,在使用 Unicode 编码时,需要先将 MySQL 的连接字符集设置为 UTF-8,以正确地表示中文字符的 Unicode 编码。
阅读全文