如何解决如何在此SQL查询中不重复自己?
我已经开始学习SQL,并且正在尝试减少重复。有人可以帮忙吗?
SELECT email
FROM users
WHERE campaign LIKE 'BBB-2'
AND test ='lions'
OR test = 'tigers'
OR test = 'bears';
解决方法
使用in
:
SELECT email
FROM users
WHERE campaign = 'BBB-2' AND test IN ('lions','tigers','bears');
注意:
-
这解决了原始查询中的逻辑优先性问题:
OR
ed条件需要用括号括起来 -
我用相等性检查替换了
LIKE
条件;当右操作数不包含通配符时,LIKE
没有意义
使用IN
:
WHERE campaign LIKE 'BBB-2' AND
test IN ('lions','bears');
作为奖励,这将修复查询中的逻辑错误。大概,您希望campaign
条件过滤所有行,而不仅仅是具有'lions'
的行。
您可以使用以下内容:
SELECT email
FROM users
WHERE campaign LIKE 'BBB-2'
AND test IN('lions','bears')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。