如何在mysql查询中使用正则表达式删除假名?

时间:2012-09-04 06:17:21

标签: mysql regex

我想删除可能使用假名注册的名称。

由于开发人员忘记对表单注册进行验证。 现在我想删除假名。

为了检查该名称是否是假的,我正在检查名称是否包含任何数字?

这是我写的查询,但它不起作用......

SELECT registration.regi_id, student.first_name, 
student.cont_no, student.email_id, 
registration.college, 
registration.event_name, 
registration.accomodation
FROM student, registration
WHERE student.stud_id = registration.stud_id
    AND student.first_name NOT RLIKE '%[0-9]%'

如何解决这个问题?

对不起我的语言问题,

P.S。的 " first_name"中有许多名称。像" asdfasdf12323" 这样的字段,我不希望这些名字显示在列表中。

2 个答案:

答案 0 :(得分:0)

您的列也可能包含字母数字字符.YOu需要过滤数字和字母数字字符

对于字母数字字符,请尝试REGEXP'^ [A-Za-z0-9] + $'

对于数字,请尝试REGEXP'[0-9]'

答案 1 :(得分:0)

就正则表达式而言,你的表达式只是寻找一个数字。此外,你的'NOT RLIKE'不是正在使用正则表达式,而是在对字面'[0-9]'进行基本的字符串搜索。我相信。 MySql支持正则表达式,你的最后一个子句看起来像这样:AND student.first_name NOT REGEXP '[0-9]*'