有一张student表

select 1 from student where ssex=“男” 到底会有什么输出?
对比分析:
1. select 1 from table;
2. select xxx(表中的任意一行) from table;
3. select * from table;
从作用上来说是没有差别的,都是查看表中是否有记录,且一般是作条件查询用的。
其中2和3较为常见,这里着重解释一下select 1 from table;
一、select 1 from table 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,select 1 > select xxx > select *,因为不用查字典表。
例如:select 1 from student 的结果是

二、一般用来当做判断子查询是否成功(即是否有满足条件的时候使用)
比如:
select * from student stuA where exists (select 1 from stuA.id = stuB.id)
- 这个判断就是当(
select 1 from stuA.id = stuB.id)这个查询如果有返回值的话表示当前查询满足条件。 - 一般来说想简单的话用select 1,当然也可以用select * ,或者select 任何字段,因为这里仅仅是表明子查询有结果就行了,至于是什么结果无所谓。
本文探讨了在SQL查询中使用SELECT 1, SELECT任意字段及SELECT *的区别与效率对比,特别强调了SELECT 1在判断子查询成功时的应用,以及其在性能上的优势。

4718

被折叠的 条评论
为什么被折叠?



