我想從下表中創建價格過濾器。目前使用兩個mysql查詢第一個創建價格範圍,第二個將通過ajax調用創建計數。使用mysql的價格過濾器
是否有任何其他的方式來獲得無論是在單一的查詢。
預期的結果:
300- 400 (2)
400- 500 (2)
500- 600 (2)
600- 620 (2)
我想從下表中創建價格過濾器。目前使用兩個mysql查詢第一個創建價格範圍,第二個將通過ajax調用創建計數。使用mysql的價格過濾器
是否有任何其他的方式來獲得無論是在單一的查詢。
預期的結果:
300- 400 (2)
400- 500 (2)
500- 600 (2)
600- 620 (2)
比方說這個查詢返回你的價格範圍:
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
我認爲它應該工作。我不知道是否是最好的方法,但嘗試一下嗎?
謝謝。讓我嘗試 – abhis
假設你有一個表price_range
與low
和high
列:
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
您如何計算價格範圍? –
有6個id,但每個範圍都包含2,這是怎麼發生的? – niktrs