我看到过很多这样的问题。
Select 1
From table
这个1是什么意思,它将如何执行,它将返回什么?
另外,在什么类型的场景中可以使用它?
我看到过很多这样的问题。
Select 1
From table
这个1是什么意思,它将如何执行,它将返回什么?
另外,在什么类型的场景中可以使用它?
当前回答
Select 1 from table将为表中的每一行返回常量1。当您想要确定record是否匹配where子句和/或join时,它很有用。
其他回答
它简单地表示您正在从表,,,,中检索数字第一列 select empl_num,Empl_no From Employees; 这里你使用select 1 from Employees; 这意味着您正在检索Emply_num列。 谢谢
我看到它总是用于SQL注入,例如:
www.urlxxxxx.com/xxxx.asp?id=99 union select 1、2、3、4、5、6、7、8、9 from database;
这些数字可用于猜测数据库存在的位置,并猜测您指定的数据库的列名。以及表的值。
如果你的意思是
SELECT * FROM AnotherTable
WHERE EXISTS (SELECT 1 FROM table WHERE...)
那么1优于
SELECT * FROM AnotherTable
WHERE EXISTS (SELECT * FROM table WHERE...)
EXISTS中的1或*被忽略,你可以按照ANSI SQL 1992标准的第191页写:
SELECT * FROM AnotherTable
WHERE EXISTS (SELECT 1/0 FROM table WHERE...)
对于表中的每条记录,结果都是1。
如果你只是想根据WHERE子句检查是真还是假,从表中选择1,其中条件是最便宜的方法。