select 1 from sql语句中的1代表什么意思

 我来答
tjrmgs
推荐于2017-11-22 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1036万
展开全部

当我们只关心数据表有多少记录行而不需要知道具体的字段值时,类似“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);
小板板yjy
2018-04-04 · TA获得超过9178个赞
知道小有建树答主
回答量:47
采纳率:100%
帮助的人:1.6万
展开全部
  1. 每个“1”代表有1行记录,同时选用数字1还因为它所占用的内存空间最小。

  2. 一个很不错的SQL语句写法,它通常用于子查询。

  3. 可以减少系统开销,提高运行效率。

  4. 因为这样子写的SQL语句,数据库引擎就不会去检索数据表里一条条具体的记录和每条记录里一个个具体的字段值并将它们放到内存里。

  5. 根据查询到有多少行存在就输出多少个“1”。

  6. 用数字0的效果也一样。

  7. 在不需要知道具体的记录值是什么的情况下这种写法无疑更加可取。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式