1

我想知道为什么我们使用

where column=id

对比

where column in (id)

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

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

4

1 回答 1

3

两者本质上是一样的,所以可以互换。使用哪个是个人喜好。

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

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

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

或者

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

当然,鲜为人知的“空安全”相等运算符<=>

WHERE column <=> id

没有等效IN版本。

于 2012-07-22T18:57:35.483 回答