【问题标题】:SQL WHERE NOT...IN vs WHERE ... NOT INSQL WHERE NOT...IN 与 WHERE ... NOT IN
【发布时间】:2016-07-03 19:19:30
【问题描述】:

以下两个语句、语法、性能、风格或其他方面是否有任何区别或最佳实践?

SELECT TitleOfCourtesy, FirstName, LastName
FROM Employees
WHERE NOT TitleOfCourtesy IN ('Ms.','Mrs.');



SELECT TitleOfCourtesy, FirstName, LastName
FROM Employees
WHERE TitleOfCourtesy NOT IN ('Ms.','Mrs.');

【问题讨论】:

  • 我很确定两者的底层查询执行是相同的。这只是一个偏好问题。就个人而言,WHERE 列 NOT IN 听起来更合适。

标签: mysql sql notin


【解决方案1】:

使用Where... NOT IN 是我遇到最多的一种,就行业而言,它是首选,以使不习惯看到Where NOT ... IN 的其他人更容易阅读该声明。

【讨论】:

    【解决方案2】:

    使用“IN”,因为它很可能使 DBMS 使用相应列上的索引。

    “NOT IN”理论上也可以转换为索引使用,但以一种更复杂的方式,DBMS 可能不会“花费开销时间”使用。

    【讨论】:

      猜你喜欢
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      相关资源
      最近更新 更多