我看到过很多这样的问题。
Select 1
From table
这个1是什么意思,它将如何执行,它将返回什么?
另外,在什么类型的场景中可以使用它?
我看到过很多这样的问题。
Select 1
From table
这个1是什么意思,它将如何执行,它将返回什么?
另外,在什么类型的场景中可以使用它?
当前回答
如果你只是想根据WHERE子句检查是真还是假,从表中选择1,其中条件是最便宜的方法。
其他回答
对于表中的每条记录,结果都是1。
它做了它所说的——它总是返回整数1。它用于检查是否存在与where子句匹配的记录。
Select 1 from table被一些数据库用作测试连接的查询,以查看它是否处于活动状态,通常用于从连接池检索或返回连接。
我看到它总是用于SQL注入,例如:
www.urlxxxxx.com/xxxx.asp?id=99 union select 1、2、3、4、5、6、7、8、9 from database;
这些数字可用于猜测数据库存在的位置,并猜测您指定的数据库的列名。以及表的值。
这只是为了方便使用IF EXISTS()。否则你可以跟我走
Select * from [table_name]
在'IF EXISTS'的情况下,我们只需要知道任何具有指定条件的行存在与否与行内容无关。
select 1 from Users
上面的示例代码,返回no。等于no。单列中有1的用户