我想从下表创建一个价格过滤器。目前使用两个mysql查询第一个创建价格范围,第二个将通过ajax调用创建计数。
还有其他方法可以在单个查询中同时获得这两种方法。
预期结果:
300- 400 (2)
400- 500 (2)
500- 600 (2)
600- 620 (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
包含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