我是靠谱客的博主 火星上路人,最近开发中收集的这篇文章主要介绍MySQL SQL中select 1的作用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当我们只关心数据表有多少记录行而不需要知道具体的字段值时,类似“select 1 from tblName”是一个很不错的SQL语句写法,通常用于子查询。这样可以减少系统开销,提高运行效率,因为这样子写的SQL语句,数据库引擎就不会去检索数据表里一条条具体的记录和每条记录里一个个具体的字段值并将它们放到内存里,而是根据查询到有多少行存在就输出多少个“1”,每个“1”代表有1行记录,同时选用数字1还因为它所占用的内存空间最小,当然用数字0的效果也一样。在不需要知道具体的记录值是什么的情况下这种写法无疑更加可取。

下面举例示范这种写法的常见用法:

1)列出每个班的学生人数
 
常规写法select class,count (*) as pax from students group by class;
 
更优写法select class,count (1) as pax from students group by class;
 
2)列出每个班最年轻的学生资料
 
常规写法select a.* from students a where not exists(select b.sid from students b where b.sid=a.sid and b.date_birth>a.date_birth);
 
更优写法select a.* from students a where not exists(select 1 from students b where b.sid=a.sid and b.date_birth>a.date_birth);

从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。 

最后

以上就是火星上路人为你收集整理的MySQL SQL中select 1的作用的全部内容,希望文章能够帮你解决MySQL SQL中select 1的作用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部