【问题标题】:mysql where number in setmysql where number in set
【发布时间】:2013-02-08 12:38:18
【问题描述】:

我正在寻找构建一个 select 语句来检查一个数字是否在一个特定的集合中。例如:

4000,5000,5500-5560,7244

是否可以将其构建到 mysql 查询中,还是我必须手动构建查询:

 Select * from table where x=4000 or x=5000 or x between 5500 and 5560 or x=7244

谢谢。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    是的,它可以构建这个查询,但你需要一些 ()

    试试这个

       Select * from table where x in (4000,5000,7244 ) or x between 5500 and 5560 
    

    【讨论】:

    • 将范围转换为离散值并将它们放入集合 (4000,5000,7244,5500,5501...5560) 会更快吗?
    • 如果你有更多 ANDOR ,它会更好更短并且不会冲突。关于速度我没有检查它。
    • 这里他们谈论性能和速度stackoverflow.com/questions/9926433/…
    【解决方案2】:

    看起来这是最好的查询:

    SELECT * FROM table WHERE x IN (4000, 5000, 7244) OR (x >= 5500 AND x <= 5560);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 2011-04-13
      • 2015-09-17
      相关资源
      最近更新 更多