删除电子邮件不是已知电子邮件客户端的位置

时间:2012-11-02 12:35:28

标签: mysql sql

我正在尝试从表中删除垃圾邮件的记录。因此,想法是删除所有没有来自hotmail,gmail或yahoo的电子邮件的记录。但我的sql看起来像是返回一些hotmail记录:

SELECT *
FROM `users`
WHERE email NOT LIKE '*hotmail.com*'
AND email NOT LIKE '*gmail.com*'
AND email NOT LIKE '*ymail.com*'

应用OR条件会返回相同的结果。你能指导正确的方向吗?

3 个答案:

答案 0 :(得分:2)

查询应如下所示

SELECT *
FROM `users`
WHERE email NOT LIKE '%hotmail.com%'
AND email NOT LIKE '%gmail.com%'
AND email NOT LIKE '%ymail.com%'

您必须将*替换为%

  

如果SQL LIKE子句与%字符一起使用,那么它将起作用   像Unix中的元字符(*),同时列出所有文件或   命令提示符下的目录。

Here's关于MySQL中的LIKE的文档

答案 1 :(得分:2)

SELECT  *
FROM    users
WHERE   email NOT RLIKE '\\@(hotmail|gmail|ymail)\\.com$'

答案 2 :(得分:0)

您的查询还会返回gmail和ymail

在mysql中你必须使用%而不是*

所以只需替换它,一切都会好的。