【问题标题】:MYSQL IN or multiple conditionalsMYSQL IN 或多个条件
【发布时间】:2009-10-13 10:53:32
【问题描述】:

我有一个简单的查询,它返回基于字段status 没有特定值的记录。 假设为了参数,该字段可以具有值 1、2、3...10,并且我想返回所有不具有值 3、7 和 9 的记录。以下哪个最好使用?

选项 1。

SELECT `id` FROM `tbl` WHERE (`status` != '3' AND `status` != '7' AND `_status` != '9')

选项 2。

SELECT `id` FROM `tbl` WHERE `status` NOT IN ('3','7','9');

感谢您的帮助。

【问题讨论】:

    标签: mysql query-optimization where-clause


    【解决方案1】:

    我怀疑优化器会将两个查询减少到同一件事,如果这是真的,我更喜欢第二个选项,因为它更短,因此更容易解析。

    您应该尝试在每个查询上运行EXPLAIN,并使用真实数据进行确认。

    【讨论】:

      【解决方案2】:

      使用 EXPLAIN 命令优化查询的最佳方法 举例

      解释 SELECT id FROM tbl WHERE status NOT IN ('3','7','9'); 并查看执行时间

      【讨论】:

        猜你喜欢
        • 2011-05-15
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        相关资源
        最近更新 更多