假设我有一个具有两个条件的 MySQL 查询:
SELECT * FROM `table` WHERE `field_1` = 1 AND `field_2` LIKE '%term%';
第一个条件显然比第二个便宜很多,所以我想确保它首先运行,限制将与 LIKE 子句进行比较的行池。 MySQL 查询条件是否按照列出的顺序运行,如果不是,是否有指定顺序的方法?
最佳答案
优化器将按照它认为合适的顺序评估 WHERE 条件。
SQL 是 declarative : 你告诉优化器你想要什么,而不是如何去做。
在 procedural/imperative 中语言(.net、Java、php 等),然后您说如何 并选择首先评估哪个条件。
注意:“从左到右”确实适用于某些表达式,如您所期望的 (a+b)*c
关于mysql - MySQL中条件执行的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8327510/