mysql - MySQL中条件执行的顺序

标签 mysql database

假设我有一个具有两个条件的 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/

相关文章:

php - 使用php从html表单多次插入Mysql

php - 用于测量请求速度和数据库速度的工具

database - 将集群添加到oracle中的现有表

mysql - 消息源的 select 语句

sql - mysql选择以 future 记录的存在为条件

mysql - 在 .Net 中使用 nhibernate 时,中文字符在 mysql 中存储不正确

python - 如何使用python(neo4j模块)远程访问在azure上运行的neo4j社区容器?

mysql - SQL/MYSQL : Select all column in a junction table

mysql - 在MySQL上优化查询SQL

MySQL:为什么使用 VARCHAR(20) 而不是 VARCHAR(255)?