MySQL SELECT IN具有单个值

时间:2011-03-29 01:05:29

标签: mysql sql

在MySQL中这样做非常糟糕:

SELECT ... WHERE foo IN ('bar')

而不是......

SELECT ... WHERE foo = 'bar'

...鉴于此动态生成的WHERE子句也可能是

SELECT ... WHERE foo IN ('bar', 'baz', 'buz')

3 个答案:

答案 0 :(得分:2)

我的理解是它会在执行前转换成相同的东西。无论哪种方式,我都会在“非常低的关注”下提出这个问题。

答案 1 :(得分:1)

我不确定我会担心这个。

但是,因为它是动态生成的,所以你总是可以在构建where子句之前进行测试,看看你有多少个值。

答案 2 :(得分:0)

使用SQL查询优化和最佳实践要好得多:

WHERE foo = 'bar' OR foo = 'baz'

比:

WHERE foo IN ('bar', 'baz')

此致