在MySQL中这样做非常糟糕:
SELECT ... WHERE foo IN ('bar')
而不是......
SELECT ... WHERE foo = 'bar'
...鉴于此动态生成的WHERE子句也可能是
SELECT ... WHERE foo IN ('bar', 'baz', 'buz')
答案 0 :(得分:2)
我的理解是它会在执行前转换成相同的东西。无论哪种方式,我都会在“非常低的关注”下提出这个问题。
答案 1 :(得分:1)
我不确定我会担心这个。
但是,因为它是动态生成的,所以你总是可以在构建where子句之前进行测试,看看你有多少个值。
答案 2 :(得分:0)
使用SQL查询优化和最佳实践要好得多:
WHERE foo = 'bar' OR foo = 'baz'
比:
WHERE foo IN ('bar', 'baz')
此致