如何过滤掉特定的电子邮件地址?

时间:2014-06-17 09:22:36

标签: mysql sql wildcard sql-like

我正在使用MySQL查询名为" clients"的客户详细信息表,其中包括一个名为" email"的电子邮件地址列。我想从gmail,hotmail和yahoo中排除所有电子邮件地址。我已经尝试编写查询(请参阅下面的最新内容),但我似乎无法使用NOT LIKE正确或找到替代方案。

有人可以帮忙吗?

MySQL查询:

SELECT      name, email

FROM        clients

WHERE       email NOT LIKE '%gmail%'
    OR  email NOT LIKE '%hotmail%'
    OR  email NOT LIKE '%yahoo%'
;

结束

P.S。我已经搜索了现有的问题,但没有找到我需要的答案。如果一个人已经存在,我会道歉并且如果你找到一个,我会感谢你指出我正确的方向。我是所有这一切的新手,几个月前我开始学习SQL工作。

1 个答案:

答案 0 :(得分:4)

你几乎就在那里,只需用OR s

替换AND
SELECT name, email
FROM clients
WHERE email NOT LIKE '%gmail%' AND email NOT LIKE '%hotmail%' AND email NOT LIKE '%yahoo%';

通过使用AND,这意味着需要满足每个条件。仅使用OR表示任何条件都可以为真,但因为您还使用NOT LIKE技术上每行都符合您的条件。

e.g。 gmail行单独匹配hotmail和yahoo规则,因此会因为OR而在结果中返回,因为任何规则都可以匹配。