我在MySQL8.0.17
:上对sakila数据库运行此查询
select * from film _1 where (
exists (
select * from film_actor where (
select * from (
select film_id=_1.film_id and actor_id=1
) _2
)
)
);
这给出了0
的结果。但如果我运行这个:
select * from film _1 where (
exists (
select * from film_actor where (
select film_id=_1.film_id and actor_id=1
)
)
);
我得到了19
的结果,这是意料之中的。
基本上,我用select * from
包装了where
条件,突然得到了错误的结果。
根据我的理解,用select * from
包装任何表值都应该得到相同的结果。
我创造了这把小提琴。
这已被确认为MySQL中的一个错误。看见https://bugs.mysql.com/bug.php?id=97461.