Character set 'utf8mb4_bin' cannot be used in conjunction with 'binary' in call to regexp_like
时间: 2023-12-26 22:04:51 浏览: 29
这个错误通常是由于在使用 `regexp_like` 函数时,正则表达式的字符集使用了 `utf8mb4_bin`,但同时也使用了 `binary` 参数,这是不允许的。
解决方法是要么将 `binary` 参数移除,要么将字符集改为 `utf8_bin` 或其他支持 `binary` 参数的字符集。具体要根据你的需求和数据来确定采取哪种方法。
举个例子,如果你想要匹配一个字符串中是否包含中文字符,可以使用如下的 SQL 语句:
```
SELECT * FROM my_table WHERE regexp_like(my_column, '[\u4e00-\u9fa5]');
```
其中,`\u4e00-\u9fa5` 表示中文字符的 Unicode 范围。在这个例子中,由于没有涉及到二进制数据,因此不需要使用 `binary` 参数,可以直接使用 `utf8_bin` 或 `utf8mb4_general_ci` 等字符集。
相关问题
Character set 'utf8mb3_general_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
这个错误是因为在使用 MySQL 的正则表达式函数 `regexp_like` 时,使用了 `binary` 类型的字符集,但是该字符集不支持 `utf8mb3_general_ci`。解决方法是更改字符集类型,可以使用 `utf8mb4_bin` 或其他支持 `binary` 类型的字符集。您可以尝试使用以下代码更改字符集类型:
```
ALTER TABLE your_table MODIFY your_column VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
```
请将 `your_table` 和 `your_column` 替换为您的表名和列名。
Character set 'utf8mb4_general_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
该错误通常发生在MySQL数据库中使用了utf8mb4字符集,同时在使用REGEXP_LIKE函数时使用了BINARY参数。这是因为utf8mb4字符集不支持二进制比较,所以不能与BINARY一起使用。
解决方法是不要在utf8mb4字符集下使用BINARY参数,或者将字符集更改为支持二进制比较的字符集,例如utf8或latin1。如果需要使用utf8mb4字符集和BINARY参数,可以考虑使用CONVERT函数将文本转换为二进制格式进行比较。