Mysql where column = id vs(ids)中的列

时间:2012-07-22 18:49:10

标签: mysql

我想知道为什么要使用

where column=id

VS

where column in (id)

我知道第一个只允许一个id而第二个允许多个id,但是为什么我们总是不使用甚至单列搜索?

换句话说,为什么我们不总是使用“(id)中的哪一列?”

1 个答案:

答案 0 :(得分:3)

这两者基本相同,所以它们是可以互换的。这是个人偏好,可以使用。

就个人而言,当我知道我永远不会检查多个值时,我会使用=。我会使用IN如果我很有可能稍后会修改查询以将新值添加到列表中。

如果不考虑性能,而不是IN,我有时会使用REGEXP,因为它更简洁,并且需要更少的输入:

WHERE column REGEXP '^(value1|value2)$'

WHERE column REGEXP '[[:<:]](value1|value2)[[:>:]]'

当然,不太为人所知的'null-safe'等号运算符<=>

WHERE column <=> id

没有等效的IN版本。