价格过滤器使用mysql

时间:2011-08-05 05:07:20

标签: mysql sql

我想从下表创建一个价格过滤器。目前使用两个mysql查询第一个创建价格范围,第二个将通过ajax调用创建计数。

enter image description here

还有其他方法可以在单个查询中同时获得这两种方法。

预期结果:

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

2 个答案:

答案 0 :(得分: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

我认为它应该有效。我不知道是否是最好的方法,但试一试?

答案 1 :(得分:0)

假设您的表price_range包含lowhigh列:

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