如果有查询结果,查询结果就会全部被1替代(当不需要知道结果是什么,只需要知道有没有结果的时候会这样用),可以提高语句的运行效率,在大数据量的情况下,提升效果非常明显
select 1
与
select *
或者select 某个字段
此处,从功能上来说是等效的,主要是用来是否有返回行,如果有,则exists成立。
至于你说的“恒成立”,我看不出来。
Select 后面可以随意跟,写0或者1只是为了1,方便;2,效率稍高
exists里面的select后面用什么都可以,可以用*,也可以用一个存在的列名,关键是看where条件的记录是否存在,使用select 1也可以,效果是一样的。
你看清楚后面的语句,有a。也有b.俩个表是相互关联的,所以后面的语句不是恒成立的,select 1也要后面条件成立才又结果