如何在MySQL中按主键选择多行?

时间:2010-03-11 17:36:45

标签: mysql select

SELECT * FROM `TABLE` WHERE
(`PRIMARY_KEY`= `VALUE1`) OR
(`PRIMARY_KEY`= `VALUE2`) OR
(`PRIMARY_KEY`= `VALUE3`) OR
(`PRIMARY_KEY`= `VALUE4`) OR
(`PRIMARY_KEY`= `VALUE5`) OR ...

这很有效。但有更快的方法吗?

4 个答案:

答案 0 :(得分:7)

使用value in (list)构造并不快,但是一旦有人需要维护代码,SQL代码将更容易阅读/理解

SELECT * 
FROM `TABLE` 
WHERE `PRIMARY_KEY` in( `VALUE1`
                       , `VALUE2`
                       , `VALUE3`
                       , `VALUE4`
                       , `VALUE5`
                      ) 

更新:重写以反映评论的反馈。

答案 1 :(得分:3)

SELECT * FROM table WHERE primary_key IN (value1, value2, ...)

答案 2 :(得分:0)

您可以使用IN关键字来实现此目标:

SELECT * FROM Table WHERE PRIMARY_KEY IN (VALUE1, VALUE2, ...)

答案 3 :(得分:0)

怎么样

SELECT * FROM `TABLE` WHERE
(`PRIMARY_KEY`IN( `VALUE1`,`VALUE2`,`VALUE3`,`VALUE4`,`VALUE5`) )