SQL Select语句(REGEXP)用于在仅alpha字段中查找特殊字符和数字

时间:2015-07-30 15:25:48

标签: mysql sql regex talend

我正在使用mySQL查询一个LastName的字段。我正在寻找该字段中的任何错误,如任何特殊字符或数字。我对SQL并不十分熟悉,所以到目前为止这是一个挑战。我已经用REGEXP编写了简单的陈述,但我遇到了一些我正在使用的REGEXP的问题:

SELECT LastName FROM `DB`.`PLANNAME` where LastName REGEXP '^([0-9])'

现在这出现了结果,其中数字是字符串中的第一个字符,我意识到如果有任何东西在字符串的中间以字母开头,那么就不会选择它。

要明确我只需找到错误而不是编写代码来清理它们。

非常感谢任何帮助

谢谢

皮特

2 个答案:

答案 0 :(得分:1)

也许你正在寻找这样的东西:

SELECT LastName FROM `DB`.`PLANNAME` WHERE NOT LastName REGEXP '[A-Za-z0-9]';

以下是关于此的文档:

Table 12.9 String Regular Expression Operators

答案 1 :(得分:1)

这样的事情应该适合你。

SELECT column FROM table WHERE column REGEXP '[^A-Za-z]'

这将返回非a-z字符的所有行。您可能希望添加'。对于O'brienvon lansing等,您认为可接受的任何字符都应包含在字符类[]http://www.regular-expressions.info/charclass.html中。

演示:https://regex101.com/r/nC9cG7/1