首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么写这样的排除条件语句

2013-01-04 
如何写这样的排除条件语句?本帖最后由 xuyirui2004 于 2012-12-25 02:52:33 编辑最近程序转换,数据库也变

如何写这样的排除条件语句?
本帖最后由 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 '%@%.%' 

热点排行