2013-02-22 30 views
0

我期待構建一個select語句來檢查數字是否在特定集合中。例如:mysql其中編號

4000,5000,5500-5560,7244

是否有可能建立這個到MySQL查詢,或做我必須手動構建查詢:

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

感謝。

回答

1

是其能夠建立這樣的查詢但你需要一些()

,而不是嘗試這種

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

會是更快只需將範圍轉換爲離散值並將其放入集(4000,5000,7244,5500,5501 ... 5560)? – Jonathan 2013-02-22 20:19:42

+0

它更好,更短,如果你有更多的AND和OR,它們不會發生衝突。關於速度我沒有檢查它。 – 2013-02-22 20:21:41

+0

這裏他們談論性能和速度http://stackoverflow.com/questions/9926433/mysql-performance-in-clause-vs-equals-for-a-single-value – 2013-02-22 20:24:55

1

看起來這將是最好的查詢:

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