![](/img/trans.png)
[英]Search mySQL for special unicode characters with mysqli with PHP
[英]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 '[$&+,:;=?@#|]';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.