sql SELECT NULL和SELECT 1之间的性能比较

kam*_*aci 4 mysql sql database exists

哪一个更适合表现

IF EXISTS(Select null from table)
Run Code Online (Sandbox Code Playgroud)

要么

IF EXISTS(Select 1 from table)
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 14

两者都执行相同的操作,因为从不评估EXISTS中的SELECT子句.你可以测试使用:

... EXISTS(SELECT 1/0 FROM TABLE) 
Run Code Online (Sandbox Code Playgroud)

这应该触发零除错误,但不会.

我个人更喜欢使用NULL,因为很明显表中没有引用任何内容,因此其他人更容易看到它.如果不熟悉EXISTS子句,选择一个值(如第二个示例中的INT编号1)可能会导致对正在发生的事情的假设.

  • 不要忘记EXISTS(SELECT*)对我来说这仍然更清晰 (2认同)