我看到了很多查询,如下所示。
Select 1 From table
这是什么1意思,它将如何执行,它会返回什么?
1
另外,在什么类型的场景中,可以使用它吗?
SELECT 1 FROM TABLE_NAME表示“从表中返回 1”。它本身相当不起眼,所以通常它会WHERE和经常一起使用EXISTS(正如@gbn 所指出的,这不一定是最佳实践,但是,它很常见,足以引起注意,即使它并不真正有意义(也就是说,我会使用它,因为其他人使用它并且它立即“更明显”。当然,这可能是一个粘性鸡与鸡蛋的问题,但我一般不详述))。
SELECT 1 FROM TABLE_NAME
WHERE
EXISTS
SELECT * FROM TABLE1 T1 WHERE EXISTS ( SELECT 1 FROM TABLE2 T2 WHERE T1.ID= T2.ID );
基本上,上面将返回表 1 中具有表 2 中相应 ID 的所有内容。(显然,这是一个人为的例子,但我相信它传达了这个想法。就我个人而言,我可能会SELECT * FROM TABLE1 T1 WHERE ID IN (SELECT ID FROM TABLE2);按照我的看法执行上述操作 FAR 对读者来说更明确,除非有令人信服的理由不这样做)。
SELECT * FROM TABLE1 T1 WHERE ID IN (SELECT ID FROM TABLE2);
实际上,直到现在我才忘记了一个案例。在您尝试从外部语言确定数据库中是否存在值的情况下,有时SELECT 1 FROM TABLE_NAME会使用。与选择单个列相比,这并没有提供显着的好处,但是,根据实现,它可能比做 a 提供实质性的好处,这SELECT *仅仅是因为通常情况下,数据库返回到一种语言的列越多,数据就越大结构,这反过来意味着将花费更多的时间。
SELECT *