繁体   English   中英

php mysql搜索所有特殊字符

[英]php mysql search all special characters

我无法弄清楚如何在单个查询中搜索mysql数据库中的所有特殊字符。

例如。 搜索mysql并返回其列包含任何特殊字符的行,例如“,”#〜;%* {等等(表示某些字段是否包含0-9,az,AZ之外的字符)。

我想要的样本查询类型---

SELECT * FROM mytable where column = 'PATTERN TO DETECT ALL SPECIAL CHARACTERS';

如果我想要排除一些像&()这样的特殊字符,请另外帮助查询。 - 被搜查。

您的查询是这样的,检查正则表达式

SELECT * 
FROM mytable 
WHERE column regexp '[^a-zA-Z0-9]'

而第二个查询将是类似的

SELECT * 
FROM mytable 
WHERE column regexp '[^a-zA-Z0-9\&]'

\\ +要忽略的字符

就像是:

SELECT * FROM mytable where NOT(column REGEXP '^([:alnum:]|[:blank:])*$');

'|' 是一个OR,'[:alnum:]'匹配任何字母数字, [:blank:]匹配空格(您可能想要或不想要), ^匹配开始, $匹配结束。 所以它返回的地方,从开始到结束, column不是由字母数字或空格组成的。 或者,您可以在单个[]子句中列出所有不允许的字符并匹配它们。

如果某些特殊字符可以,您可以添加其他字符:

SELECT * FROM mytable where NOT(column REGEXP '^([:alnum:]|[:blank:]|[()&])*$');

有关更多信息,请参阅文档: http//dev.mysql.com/doc/refman/5.1/en/regexp.html

(我不能从这里测试SQL,但我认为我的语法正确)。

这是最简单的方法:

SELECT *
FROM mytable
WHERE column REGEXP '[^a-zA-Z0-9]'

尝试使用此查询搜索特殊字符记录。

SELECT *
FROM tableName
WHERE fieldName REGEXP '[^a-zA-Z0-9@:. \'\-`,\&]'

我们删除了符号@:dot(。)撇号(')连字符( - )asterick(`)和逗号(,)字母和数字,以便我们可以看到剩余的特殊字符记录。

SELECT *
  FROM table
 WHERE column1 REGEXP '[$&+,:;=?@#|]';

更多信息: http//dev.mysql.com/doc/refman/5.0/en/regexp.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM