select 1 from 表名;与select * from 表名 作用上来说是没有差别的,都是查看是否有记录。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>*,因为不用查字典表。
select count(1) from 表名 代表查询表总记录数
作用场景:
用户表A : id, name, unionid,
黑名单表B: id , aid, aname
其中 表A的id 是表B的外键aid,
如何根据unionid判断用户是否在黑名单中?
select case when count(1)>0 then 'false' else 'true' end from A a where a.unionid='?' and exists (select 1 from B b where b.aid=a.id)