我看到过很多这样的问题。

Select 1  
From table

这个1是什么意思,它将如何执行,它将返回什么?

另外,在什么类型的场景中可以使用它?


当前回答

对于表中的每条记录,结果都是1。

其他回答

Select 1 from table被一些数据库用作测试连接的查询,以查看它是否处于活动状态,通常用于从连接池检索或返回连接。

这意味着你想要一个值“1”作为输出,或者大部分时间用作内部查询,因为出于某种原因,你想要根据内部查询的结果计算外部查询。不是所有的时候你都用1,但是你有一些特定的值…

这将静态地为您提供值1的输出。

如果你不知道你的表中是否存在任何数据,你可以使用以下查询:

SELECT cons_value FROM table_name;

例如:

SELECT 1 FROM employee;

它将返回一个包含行总数的列,并且所有行都具有相同的常量值1(这次它为所有行返回1); 如果表中没有行,它将不返回任何内容。

因此,我们使用这个SQL查询来知道表中是否有任何数据&行数表示这个表中有多少行。

如果你只是想根据WHERE子句检查是真还是假,从表中选择1,其中条件是最便宜的方法。

更具体地说,您将使用这个来做

SELECT 1 FROM MyUserTable WHERE user_id = 33487

而不是做

SELECT * FROM MyUserTable WHERE user_id = 33487

因为你不关心结果。对于数据库来说,请求数字1非常容易(因为它不需要进行任何查找)。