我正在使用一个MySQL数据库,但这个问题可能适用于SQL、Oracle等。
我有一个产品表,其中一列是品牌,我给用户选择他想要的品牌的可能性。我的问题来了,是让查询选择该表中与所选品牌匹配的所有结果,还是让查询选择该表中与未选择品牌不匹配的所有结果?
因此,
寻找与某物相等的结果是否更有效/更快(或相同)
不平等?为什么。。。

最佳答案

性能是使用=的原因之一。有两个组成部分。首先是索引,其中=比较提供更强大的索引能力。第二个是分区。虽然对于只接受少量值的列来说不太可能,=对于解析分区来说更好。
另一个原因是语义。NULLs的存在可能令人困惑。考虑两个比较:

where col = 'x'
where col <> 'x'

这两个where子句都过滤掉colNULL的值。对于=,这完全有意义。然而,即使在您了解了规则之后,它也会与<>有点混淆。直觉上,我们认为“NULL不等于”x“,所以应该是真的”。实际上,NULL表示一个未知值,一个未知值可以等于'x',因此该语句可能是真的;实际上,它返回的NULL被过滤掉了。

关于mysql - 进行查询时最好使用相等还是不相等?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37737550/

10-12 23:45