Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用于检测具有特殊字符的列的SQL查询?_Mysql_Sql_Wordpress - Fatal编程技术网

Mysql 用于检测具有特殊字符的列的SQL查询?

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

在这里和其他很多网站上,我都找到了很多关于这个问题的帖子,但是由于一些奇怪的原因,没有人能工作

我有一个Wordpress数据库,我需要找到wp_术语中包含的所有具有特殊字符的术语

事实上,我需要找到所有包含数字或字母的内容

为什么这不起作用?MySQL查询返回0个结果

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]”