【问题标题】:Does MySQL run all WHERE conditions if first is false如果 first 为 false,MySQL 是否运行所有 WHERE 条件
【发布时间】:2014-04-16 07:47:19
【问题描述】:

如果您在 PHP 中执行 if,它将停止 if 语句中第一个 false 之后的条件。

MySQL 在其 where 条件下是否有相同的行为?

假设我有一个查询:

SELECT id FROM table_name WHERE row = value AND EXISTS(...)

如果row = valuefalse,会执行EXISTS 语句吗?

【问题讨论】:

  • this input 可能会为您解答您的问题。
  • 您可以创建Query Execution Plan 以获得特定查询的具体答案
  • 在 SQL 中,一般来说,你是在告诉系统“你想要什么”,而不是“如何去做”——而你往往无法控制的事情之一是命令它执行单个任务。

标签: mysql sql performance


【解决方案1】:

无法保证 where 条件将按照它们在查询中出现的顺序进行检查。执行计划会给你答案,试试吧

EXPLAIN SELECT id FROM table_name WHERE row = value AND EXISTS(...)

计划也可能因表的统计信息而异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 2013-09-14
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2019-05-26
    相关资源
    最近更新 更多