SQL中的“WHERE 1”是什么意思?

有时PHPMyAdmin会生成如下所示的查询
SELECT * 
FROM  `items` 
WHERE 1 
LIMIT 0,30

我想知道WHERE 1是否有这样的查询有任何意义.

解决方法

没有这意味着永远是真的,所以它不会对您的查询有任何过滤影响.查询策划人员可能会忽略该条款.

当您通过连接过滤条件构建客户端查询时通常使用它.

所以,如果你的基本查询存储在这样的字符串(例如在PHP中,但它肯定适用于许多其他语言):

$sql = "select * from foo where 1 ";

然后,您可以将大量过滤条件与AND子句连接在一起,而不管它们是否是您使用的第一个条件:

// pseudo PHP follows...
if ($filter_by_name) {
    $sql = $sql . " and name = ? ";
}
if ($filter_by_number) {
    $sql = $sql . " and number = ? ";
}
// so on,and so forth.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...