当我写PostgreSQL WHERE
子句时条件顺序有问题吗?
想象一下,ID
列被编入索引而name
未被列入的表格。
这些两个查询是否会同时执行?
SELECT * FROM users WHERE state = 0 AND id = 3;
SELECT * FROM users WHERE id = 3 AND state = 0;
尽管有这些简单的查询。 Postgres是否对复杂查询进行相同的优化,何时不进行优化?
请在回答时提供教授链接。
谢谢。
答案 0 :(得分:0)
https://www.postgresql.org/docs/current/static/sql-select.html#SQL-WHERE
其中condition是任何计算结果类型的表达式 布尔值。任何不满足此条件的行都将是 从输出中消除。
https://www.postgresql.org/docs/current/static/functions-logical.html
运算符AND和OR是可交换的,也就是说,你可以切换 左右操作数而不影响结果
关于"条件评估控制",有are some answers