[英]SQL to check if exists with condition or not exists
我有以下情况:
我想select a mission from a table(missions) for a user (userID=?)
,或者如果用户未分配给任何任务,我将 select 所有任务。
这可以通过 2 个查询来实现:
Select * from missions where userID = :ID
如果(结果为空)
Select * from missions
如果可能的话,我想要这些 2 SQL 在一个 SQL 中
我换句话。 用户可以使用管理员分配的 select 邮件,也可以处理所有邮件。
你可以试试:
SELECT *
FROM missions
WHERE
userID = :ID OR
NOT EXISTS (SELECT 1 FROM missions WHERE userID = :ID);
如果userID =:ID
存在一个或多个记录,则这些记录的第一个条件将为真,并且存在条件也将为假,因此被忽略。 如果userID =:ID
不存在任何记录,则第一个条件将始终为假,因此被忽略,而第二个条件将始终为真,从而返回整个表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.