我有以下场景:我想 select a mission from a table(missions) for a user (userID=?) ,或者如果用户没有分配任何任务,我将选择所有任务。这可以通过两个查询实现:
select a mission from a table(missions) for a user (userID=?)
Select * from missions where userID = :ID
if(结果为空)
Select * from missions
如果可能的话,我想把这两个sql放在一个sql中我想换个词。用户可以选择他分配给管理员的梅森,也可以使用所有梅森。
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,从而返回整个表。
userID = :ID
1条答案
按热度按时间zyfwsgd61#
您可以尝试:
是否存在一个或多个记录
userID = :ID
,对于这些记录,第一个条件将为true,而exists条件也将为false,因此将被忽略。是否不存在与的记录userID = :ID
,则第一个条件将始终为false,因此被忽略,而第二个条件将始终为true,从而返回整个表。