Mysql IF EXISTS子查询返回的行数超过1行
将Mysql IF EXISTS子查询返回的行数超过1行,mysql,Mysql,将WHERE id IN与条件子查询一起使用时,为什么子查询必须返回1行?为什么此查询可以使用限制1,但不能不使用?我怎样才能做到这一点 SQLFiddle: 这项工作: select * from ForgeRock where (exists(SELECT `fid` FROM `AvailableRock` where `fid` = 1) AND `id` IN (SELECT `fid` FROM `AvailableRock` where `fid` = 1)) OR NOT e
WHERE id IN
与条件子查询一起使用时,为什么子查询必须返回1行?为什么此查询可以使用限制1
,但不能不使用?我怎样才能做到这一点
SQLFiddle:
这项工作:
select * from ForgeRock where
(exists(SELECT `fid` FROM `AvailableRock` where `fid` = 1) AND
`id` IN (SELECT `fid` FROM `AvailableRock` where `fid` = 1))
OR NOT exists(SELECT `fid` FROM `AvailableRock` where `fid` = 1)
谢谢,但这仍然只返回1行,问题是当不满足条件时,您希望返回所有行而不是全部否,它返回所有行,当
不存在时
触发,只需将所有1
更改为2
select * from ForgeRock where
(exists(SELECT `fid` FROM `AvailableRock` where `fid` = 1) AND
`id` IN (SELECT `fid` FROM `AvailableRock` where `fid` = 1))
OR NOT exists(SELECT `fid` FROM `AvailableRock` where `fid` = 1)