如何写这样的排除条件语句?
本帖最后由 xuyirui2004 于 2012-12-25 02:52:33 编辑
最近程序转换,数据库也变了,原本的程序是自己写的。
email里没有限制好,导致有些老会员email可以随意填写,转换的时候出错了。
怎么在数据库表user 列email查找 格式不是 xxx@xxx.xxx 并删除?
delete from [user] where Address 电子邮箱='@'
这样不行
消息 4145,级别 15,状态 1,第 1 行
在应使用条件的上下文(在 '电子邮箱' 附近)中指定了非布尔类型的表达式。
------解决方案--------------------用的什么数据库?如果是oracle的话可以试试这个
delete from user where user_id in (SELECT user_id
FROM user WHERE REGEXP_LIKE(email, '\w+@\w+(\.\w+)+'))
------解决方案--------------------delete from [user] where [Address 电子邮箱] like '%@%'
------解决方案--------------------“Address 电子邮箱” 是指什么呢?
如果你的邮箱地址是存在 user表的 email字段,并且要求email格式是 xxx@xxx.xxx
那么这样查可以查到部分错误的email地址:
select * from user where email not like '%@%.%'
删除就简单了,按照上面语句删除就好了:
delete from user where email not like '%@%.%'