2011-08-05 64 views
0

我想從下表中創建價格過濾器。目前使用兩個mysql查詢第一個創建價格範圍,第二個將通過ajax調用創建計數。使用mysql的價格過濾器

enter image description here

是否有任何其他的方式來獲得無論是在單一的查詢。

預期的結果:

300- 400 (2) 
400- 500 (2) 
500- 600 (2) 
600- 620 (2) 
+4

您如何計算價格範圍? –

+0

有6個id,但每個範圍都包含2,這是怎麼發生的? – niktrs

回答

0

比方說這個查詢返回你的價格範圍:

SELECT a, b FROM x WHERE ... blah blah blah 

現在。如果你想數一下這是我會做的:

SELECT 
    CONCAT(y.a,'-',y.b) "range", 
    (SELECT COUNT(*) FROM item WHERE price BETWEEN y.a AND y.b) "total" 
FROM 
    (SELECT a, b FROM x) AS y 

我認爲它應該工作。我不知道是否是最好的方法,但嘗試一下嗎?

+0

謝謝。讓我嘗試 – abhis

0

假設你有一個表price_rangelowhigh列:

SELECT 
    CONCAT(low, '-', high) as range, 
    sum(price between low and high) as total 
FROM price_range 
CROSS JOIN item 

如果沒有表,但有一個查詢,而不是上面做一些類似,但與查詢中使用別名:

SELECT 
    CONCAT(low, '-', high) as range, 
    sum(price between low and high) as total 
FROM (select low, high from some_table) as price_range 
CROSS JOIN item