我正在使用MySQL查询名为" clients"的客户详细信息表,其中包括一个名为" email"的电子邮件地址列。我想从gmail,hotmail和yahoo中排除所有电子邮件地址。我已经尝试编写查询(请参阅下面的最新内容),但我似乎无法使用NOT LIKE正确或找到替代方案。
有人可以帮忙吗?
SELECT name, email
FROM clients
WHERE email NOT LIKE '%gmail%'
OR email NOT LIKE '%hotmail%'
OR email NOT LIKE '%yahoo%'
;
P.S。我已经搜索了现有的问题,但没有找到我需要的答案。如果一个人已经存在,我会道歉并且如果你找到一个,我会感谢你指出我正确的方向。我是所有这一切的新手,几个月前我开始学习SQL工作。
答案 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
而在结果中返回,因为任何规则都可以匹配。