代码之家  ›  专栏  ›  技术社区  ›  Chicken Sandwich No Pickles

SQL良好实践:NOT IN vs<>

  •  0
  • Chicken Sandwich No Pickles  · 技术社区  · 3 年前

    之间是否存在性能差异 NOT IN <> 在中 WHERE 条款什么被认为是一种好的做法,什么时候?

    脚本

    NOT IN ('a', 'b', 'c', 'd')
    

    vs

    <> 'a' AND
    <> 'b' AND
    <> 'c' AND
    <> 'd'
    

    除了更简单的代码,还有什么案例可以使用吗 不在 超过一堆 <> 线

    出于性能原因,我什么时候应该使用1而不是另一个?

    1 回复  |  直到 3 年前
        1
  •  3
  •   Gordon Linoff    3 年前

    我确信它们在SQL Server中是等效的。但是,我建议 NOT IN 因为它更简洁且不易出错。

    在某些数据库中 可以 有影响例如,MySQL排序 IN 列表进行二进制搜索(我想它对 不在 列表)。但是,我不认为SQL Server有这样的优化。

        2
  •  2
  •   Venkataraman R    3 年前

    它们完全一样。没有区别。

    但是,若有任何NULL值出现在图片中,那个么NOT EXISTS将是正确的选择。

    Read more on NOT IN Vs NOT EXISTS