SQL Select 语句 (REGEXP) 在仅包含字母的字段中查找特殊字符和数字

SQL Select Statement(REGEXP) to find special characters and numbers in an alpha only field

我正在使用 mySQL 来查询字段 LastName。我正在查找该字段中的任何错误,例如任何特殊字符或数字。我对 SQL 不是很熟悉,所以到目前为止这一直是一个挑战。我用 REGEXP 编写了简单的语句,但我 运行 遇到了一些问题,我使用的 REGEXP 是:

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

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

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

任何帮助将不胜感激

谢谢

皮特

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

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

这里有一个文档:

Table 12.9 String Regular Expression Operators

像这样的东西应该适合你。

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

这将 return 字符不是 a-z 的任何行。您可能想要添加 </code> 和 <code>'。对于 O'briens 和 von lansing 等。任何您认为可以接受的字符都应该放在字符 class []http://www.regular-expressions.info/charclass.html.

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