2011-08-05 66 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