1
我有一個表'商品'與3列(id,名稱,價格)。我需要通過ID列表和價格範圍獲取數據。結合WHERE和IN子句與兩個字段
我使用這個查詢:當我使用嚴格的價格值
SELECT id, name, price FROM goods
WHERE (id, price)
IN ((1,10), (3,20), (2,10))
ORDER BY FIELD(id, 1,3,2)
一切就好了。
其實,我需要做的查詢,如:
SELECT id, name, price FROM goods
WHERE (id, price)
IN ((1, BETWEEN 0 AND 100), (2, BETWEEN 50 AND 150), (n, BETWEEN m AND k))
ORDER BY FIELD(id, 1,3,n)
我發現表達(1, BETWEEN 0 AND 100)
永遠不會返回結果,我需要,而(1,10)
意志。
我肯定可以通過價格範圍在PHP中排除記錄,但我試圖找到更有效的方式來做到這一點在MySQL查詢使用索引。我該怎麼辦?
我需要從1到50 coditions使用像'(ID = 1,價格介於0和100)` - 將它提高查詢很多時間(甚至在字段`id,price`上使用索引)? – aintghost 2011-02-11 23:02:11