繁体   English   中英

SQL 检查是否存在条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM