记住EXISTS后边括号里面返回的是TRUE或者FALSE,而不用去纠结选出来的具体是结果。
就是说,你把变量传进where条件,如果选出有结果,那么返回就是TRUE,否则是FALSE。
不用纠结结果是什么,只要有返回行就行。
所以,里面语句写的是SELECT *,同样,*号也可以改成具体的列,或者固定的值,如1或者'x'之类的。这里只关注括号内的语句是否有返回行,而不在乎行的内容是什么。
if exists 判断括号里的select语句是否有返回的行,也就是是否有结果集,如果有则执行判断为真的sql,与之相对是if not exists,如果没有返回行,则执行判断为真的sql
这句话的意思我用程序中的if 跟你介绍
if exists(SQL查询) 相当于 if(条件)
下面我就不解释了