大WHERE查询

时间:2011-06-28 12:44:37

标签: mysql sql where-clause

使用每行最多500次比较查询数据库的最佳方法是什么。

SELECT * FROM table WHERE column = x OR column = y OR column = z OR ...(x500)

我估计这张桌子在短期内可能增长到数千个。 感谢

5 个答案:

答案 0 :(得分:7)

使用WHERE column IN(x,y,z...)

答案 1 :(得分:4)

如果你做了一些......说少于20左右,你可以使用IN(....)子句。但是,如果你做的事情通常会定期超过100或1000,我会使用一个只有“columnX”值的临时表并插入所有可能的值...然后使用这个临时表查询连接作为对方的基础......

select YT.*
   from
      JustValuesTable JVT
         Join YourTable YT
            ON JVT.ColumnX = YT.ColumnX
   rest of query...

答案 2 :(得分:3)

也许你可以使用in子句..

select * from table where column in ('asdf', 'aqwer' .....)

另外,您可能想要创建一个包含允许值的视图,然后

select * from table where column in (select your_field_name from your_view)

答案 3 :(得分:1)

您最好使用IN查询:

SELECT * FROM table WHERE column IN (x, y, z)

这至少会使它更具可读性,我认为应该提高性能。

答案 4 :(得分:1)

如何使用IN function