从MySQL中的regexp错误获取“无效字符类”

时间:2019-11-07 11:56:17

标签: mysql xampp amazon-rds

当我尝试在Adminer和Sequel Pro中执行以下查询时:

SELECT * FROM `sms_messages` WHERE `message` REGEXP '[^[:ascii:]]+'

我在MYSQL中遇到以下错误:

Error in query (1139): Got error 'invalid character class' from regexp

但是,它可以在我的本地计算机上运行,​​但不能在AWS RDS中运行。在本地,我已经使用MariaDB 10.1.37安装了XAMPP。我在AWS RDS中有MySQL 5.7.26引擎版本。怎么了?

1 个答案:

答案 0 :(得分:0)

REGEXP的{​​{3}}(5.7版本,而不是8.0)可以看出,没有受支持的[:ascii:]字符集。但是,我们可以使用以下十六进制范围匹配所有ASCII字符:

[\x00-\x7F]

您更新的查询:

SELECT *
FROM sms_messages
WHERE CONVERT(message USING BINARY) REGEXP '[^\x00-\x7F]';