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

Mysql SQL Select语句(REGEXP),用于在纯alpha字段中查找特殊字符和数字,mysql,sql,regex,talend,Mysql,Sql,Regex,Talend,我正在使用mySQL查询一个字段,该字段将是LastName。我正在查找字段中的任何错误,例如任何特殊字符或数字。我对SQL不是很熟悉,所以到目前为止这是一个挑战。我已经用REGEXP编写了简单的语句,但是我遇到了一些问题,我使用的REGEXP是: SELECT LastName FROM `DB`.`PLANNAME` where LastName REGEXP '^([0-9])' 现在这个结果是数字是字符串中的第一个字符,我意识到如果有一个字母开头的字符串中间有什么东西,它就不会被选出来

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

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

现在这个结果是数字是字符串中的第一个字符,我意识到如果有一个字母开头的字符串中间有什么东西,它就不会被选出来。p> 为了清楚起见,我只需要找到错误,而不是编写代码来清除它们

任何帮助都将不胜感激

谢谢


皮特

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

SELECT LastName FROM `DB`.`PLANNAME` WHERE NOT LastName REGEXP '[A-Za-z0-9]';
以下是关于此的文档:


像这样的东西应该可以帮到你

SELECT column FROM table WHERE column REGEXP '[^A-Za-z]'
这将返回包含非a-z字符的任何行。您可能需要添加
'
。对于
O'brien
s和
von lansing
等。您认为可以接受的任何字符都应归入字符类
[]


DEMO:< /P>删除<代码> ^ < /> >,如果您想在字符串中间找到模式。那么,有什么东西可以找到像括号、句点或逗号之类的特殊字符,我可以在同一个语句中写入吗?您只想要找到非字母字符(或倒数)吗?我认为这个线程可以解决这个问题(去掉

0-9
)。这是正确的,Chris l只想找到非字母字符,所以
^[A-Za-z]+$
会找到所有正确的字符吗?太好了,请在彻底测试后将此标记为可接受的答案;或者发布您遇到的问题。Chris我尝试在character类中添加连字符和撇号,但即使在括号内,[-]也只是结束我的代码,并且仍然返回带有连字符的结果。对此有何想法?尝试转义连字符和引号。连字符通常指定一个范围,引号关闭正则表达式封装<代码>从列REGEXP'[^A-Za-z\-\']'所在的表中选择列。这是未经测试的,如果它不起作用,请告诉我,我将运行一个测试..我必须在a-z和\-\之间留出一个空格,以去除连字符,但是“仍在关闭表达式并抛出错误”未终止字符串文字因为它将“]”视为一个不同的部分,即使我将“”加倍,它也可以工作,但随后再次显示连字符,仍然显示带有撇号的名称,我不确定这是否重要,但我正在talend SQL editor中运行这些表达式