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

时间:2011-02-02 15:18:29

标签: sql mysql database exists

哪一个更适合表现

IF EXISTS(Select null from table)

IF EXISTS(Select 1 from table)

1 个答案:

答案 0 :(得分:14)

两者都执行相同的操作,因为从不评估EXISTS中的SELECT子句。您可以使用以下方式进行测试:

... EXISTS(SELECT 1/0 FROM TABLE) 

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

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