我有一个问题:
select *
from randomtable
where randomnumber <> 0
“random_number”列永远不会是负数。
所以,如果我把查询写成:
select *
from randomtable
where randomnumber > 0
有什么重大差异吗?
答案 0 :(得分:5)
不,完全没有区别(在您的具体情况下)。所有数字比较都需要相同的时间。
在最低级别完成的是从randomnumber中减去零,然后检查结果。 &gt;运算符在&lt;&gt;时查找正的非零结果运算符查找非零结果。这些比较是微不足道的,并且花费相同的时间来执行。
答案 1 :(得分:2)
如果它永远不会小于零,则否
答案 2 :(得分:2)
重要的是确定您如何知道random_number
永远不会是负数。是否存在保证它的约束?如果没有,如果其他地方的错误导致代码为负,您希望代码做什么?
答案 3 :(得分:2)
结果集永远不会有所不同。查询路径可能是第二个可能选择从randomnumber = 0开始的索引范围扫描并按顺序查找记录。因此,结果的顺序可能不同。
如果结果的顺序很重要,那么请输入ORDER BY
答案 4 :(得分:0)
'大于'意味着什么?它意味着“不平等”和“不小于”。在这种情况下,如果数字不能小于零,则“大于”等于“不相等”。