sql检查是否有条件存在

hfyxw5xn  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(346)

我有以下场景:
我想 select a mission from a table(missions) for a user (userID=?) ,或者如果用户没有分配任何任务,我将选择所有任务。
这可以通过两个查询实现:

Select * from missions where userID = :ID

if(结果为空)

Select * from missions

如果可能的话,我想把这两个sql放在一个sql中
我想换个词。用户可以选择他分配给管理员的梅森,也可以使用所有梅森。

zyfwsgd6

zyfwsgd61#

您可以尝试:

SELECT *
FROM missions
WHERE
    userID = :ID OR
    NOT EXISTS (SELECT 1 FROM missions WHERE userID = :ID);

是否存在一个或多个记录 userID = :ID ,对于这些记录,第一个条件将为true,而exists条件也将为false,因此将被忽略。是否不存在与的记录 userID = :ID ,则第一个条件将始终为false,因此被忽略,而第二个条件将始终为true,从而返回整个表。

相关问题