Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql IF EXISTS子查询返回的行数超过1行_Mysql - Fatal编程技术网

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)