我正在使用 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%'
;
结束
附注我搜索了现有的问题,但没有找到我需要的答案。如果已经存在,我深表歉意,如果您找到一个,我将不胜感激您为我指明正确的方向。我对这一切都是新手,因为几个月前我为了工作开始学习 SQL。
最佳答案
您已经差不多了,只需将 OR
替换为 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
从技术上讲,每一行都将符合您的条件.
例如gmail 行分别匹配 hotmail 和 yahoo 规则,因此由于 OR
的作用,任何规则都可以匹配,因此将在结果中返回。
关于mysql - 如何过滤掉特定的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260084/