我正在使用mySQL查询一个LastName
的字段。我正在寻找该字段中的任何错误,如任何特殊字符或数字。我对SQL并不十分熟悉,所以到目前为止这是一个挑战。我已经用REGEXP
编写了简单的陈述,但我遇到了一些我正在使用的REGEXP
的问题:
SELECT LastName FROM `DB`.`PLANNAME` where LastName REGEXP '^([0-9])'
现在这出现了结果,其中数字是字符串中的第一个字符,我意识到如果有任何东西在字符串的中间以字母开头,那么就不会选择它。
要明确我只需找到错误而不是编写代码来清理它们。
非常感谢任何帮助
谢谢
皮特
答案 0 :(得分:1)
也许你正在寻找这样的东西:
SELECT LastName FROM `DB`.`PLANNAME` WHERE NOT LastName REGEXP '[A-Za-z0-9]';
以下是关于此的文档:
答案 1 :(得分:1)
这样的事情应该适合你。
SELECT column FROM table WHERE column REGEXP '[^A-Za-z]'
这将返回非a-z字符的所有行。您可能希望添加和
'
。对于O'brien
和von lansing
等,您认为可接受的任何字符都应包含在字符类[]
,http://www.regular-expressions.info/charclass.html中。