小编典典

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

sql

有时phpMyAdmin生成如下查询:

SELECT * 
FROM  `items` 
WHERE 1 
LIMIT 0 , 30

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


阅读 336

收藏
2021-03-23

共1个答案

小编典典

没有。这意味着ALWAYS TRUE它不会对您的查询产生任何过滤影响。查询计划者可能会忽略该子句。

通常在通过连接过滤条件来构建客户端查询时使用。

因此,如果您的基本查询存储在这样的字符串中(示例在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.
2021-03-23