mysql - SQL检查条件是否存在或不存在
问题描述
我有以下情况:
我想要select a mission from a table(missions) for a user (userID=?)
,或者如果用户没有分配到任何任务,我将选择所有任务。
这可以通过 2 个查询来实现:
Select * from missions where userID = :ID
如果(结果为空)
Select * from missions
如果可能的话,我希望将这 2 个 SQL 放在一个 SQL 中
我换句话。用户可以选择管理员分配给他的邮件,也可以处理所有邮件。
解决方案
你可以试试:
SELECT *
FROM missions
WHERE
userID = :ID OR
NOT EXISTS (SELECT 1 FROM missions WHERE userID = :ID);
如果一个或多个记录与 一起存在userID = :ID
,则这些记录的第一个条件将为真,并且存在条件也将为假,因此被忽略。如果不存在任何记录userID = :ID
,则第一个条件将始终为假,因此被忽略,而第二个条件将始终为真,从而返回整个表。
推荐阅读
- python - 如何在 kivymd 中添加下拉列表并赋予它一些功能
- f# - 为什么 Seq.map 只评估 5 个元素?
- python-3.x - 如何从拥抱脸改变预训练长形模型的参数
- python - 用于 HSI 数据分类的 LSTM
- jquery - 使用鼠标跟随动画平滑地将一个选项卡移动到另一个选项卡
- node.js - db.collection.insertOne 不工作,我的代码有问题吗?
- python - 回溯(最近一次调用最后一次)熊猫和预期的字符串或类似字节的对象
- c# - 在 PPT 文件中创建一个 XLSX 文件
- selenium - Selenium ChromeDriver 提供“数据”;运行“webdriver.Chrome”时出错
- python - 查找包含列表项python的字典行的最佳方法