Mysql 用于检测具有特殊字符的列的SQL查询?
在这里和其他很多网站上,我都找到了很多关于这个问题的帖子,但是由于一些奇怪的原因,没有人能工作 我有一个Wordpress数据库,我需要找到wp_术语中包含的所有具有特殊字符的术语 事实上,我需要找到所有包含数字或字母的内容 为什么这不起作用?MySQL查询返回0个结果Mysql 用于检测具有特殊字符的列的SQL查询?,mysql,sql,wordpress,Mysql,Sql,Wordpress,在这里和其他很多网站上,我都找到了很多关于这个问题的帖子,但是由于一些奇怪的原因,没有人能工作 我有一个Wordpress数据库,我需要找到wp_术语中包含的所有具有特殊字符的术语 事实上,我需要找到所有包含数字或字母的内容 为什么这不起作用?MySQL查询返回0个结果 SELECT * FROM wp_terms WHERE name LIKE '%[^0-9a-zA-Z ]%' 您可以使用REGEXP来了解这一点。此外,^必须位于[]之外 SELECT * FROM wp_terms WH
SELECT * FROM wp_terms WHERE name LIKE '%[^0-9a-zA-Z ]%'
您可以使用REGEXP来了解这一点。此外,^必须位于[]之外
SELECT * FROM wp_terms WHERE name REGEXP '[^0-9a-zA-Z ]'
测试
MariaDB [(none)]> SELECT "Hello" REGEXP '[^0-9a-zA-Z ]' as resut;
+-------+
| resut |
+-------+
| 1 |
+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> SELECT "-Hello" REGEXP '[^0-9a-zA-Z ]' as resut;
+-------+
| resut |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
它不起作用,因为MySQL支持ANSI版本的
,比如。您使用的表单是与SQL Server关联的扩展表单
另一方面,MySQL支持更强大的正则表达式。所需的正则表达式是:
WHERE name REGEXP '[^0-9a-zA-Z ]'
请注意,正则表达式匹配字符串中的任何位置的模式,因此您不需要在开头和结尾使用通配符。谢谢,我刚刚在phpMyAdmin中尝试了这一点,但查询返回的所有术语都没有特殊字符。我正在查找包含特殊字符的所有行。抱歉,请将其更改为“[^0-9a-zA-Z]”