原文网址:SELECT 1 FROM TABLE的作用_IT利刃出鞘的博客-CSDN博客
简介
????????本文介绍SELECT 1 FROM TABLE的作用。
????????当我们只关心数据表有多少记录行而不需要知道具体的字段值时,“SELECT 1 FROM TABLE”是一个很不错的SQL语句写法,它通常用于子查询。
????????SELECT 1 FROM TABLE可以减少系统开销,提高运行效率。因为此时数据库就不会去检索数据表里每条具体的记录和每条记录里每个具体的字段值并将它们放到内存里,而是查询到有多少记录行存在就输出多少个“1”,每个“1”代表有1行记录。
????????选用数字1是因为它所占用的内存空间最小,用数字0的效果也一样,即:SELECT? 0 FROM TABLE。
SELECT的几种用法
- SELECT 1 FROM TABLE;
- SELECT XXX(表中的任意一行) FROM TABLE;
- SELECT * FROM TABLE;
从效率上来说,SELECT 1 > SELECT XXX > SELECT *。
SELECT 1 FROM TABLE示例
表里的数据:

SELECT 1 FROM t_user;

SELECT 0 FROM t_user

SELECT 1 FROM TABLE应用
应用1:子查询
常规写法
SELECT * FROM t1 a WHERE EXISTS (SELECT * FROM t2 b WHERE a.id = b.id)
更优写法
SELECT * FROM t1 a WHERE EXISTS (SELECT 1 FROM t2 b WHERE a.id = b.id)
应用2:COUNT
常规写法
SELECT class, COUNT(*) AS pax FROM students GROUP BY class;
更优写法
SELECT class, COUNT(1) AS pax FROM students GROUP BY class;
?
|