sql中的select 1

前两天在公司项目中看到有人在一个子查询中写了select 1,然后就很好奇这个写法的作用,通过网上各位大佬的介绍,得知select 1在作为子查询中的判断子查询结果是否存在条件时效率较高(大量数据情况下)。

用法示例

teacher表:
在这里插入图片描述

teachercard表:

在这里插入图片描述

使用的sql语句如下:

select * from teachercard tc where exists (select 1 from teacher t where t.dd is not null);

sql执行后的结果如下:

sql中的select 1_第1张图片

删除teacher表中dd字段存在的记录后,再次执行相同的sql,结果如下:

sql中的select 1_第2张图片

根据上面的测试可以得出如下结论:当不需要知道结果是什么,只需要知道有没有结果的时候,可以使用select 1 作为子查询结果是否存在判断,这样可以提高性能。

你可能感兴趣的:(sql)