我想知道为什么要使用
where column=id
VS
where column in (id)
我知道第一个只允许一个id而第二个允许多个id,但是为什么我们总是不使用甚至单列搜索?
换句话说,为什么我们不总是使用“(id)中的哪一列?”
答案 0 :(得分:3)
这两者基本相同,所以它们是可以互换的。这是个人偏好,可以使用。
就个人而言,当我知道我永远不会检查多个值时,我会使用=
。我会使用IN
如果我很有可能稍后会修改查询以将新值添加到列表中。
如果不考虑性能,而不是IN
,我有时会使用REGEXP
,因为它更简洁,并且需要更少的输入:
WHERE column REGEXP '^(value1|value2)$'
或
WHERE column REGEXP '[[:<:]](value1|value2)[[:>:]]'
当然,不太为人所知的'null-safe'等号运算符<=>
:
WHERE column <=> id
没有等效的IN
版本。