我想从下表中创建价格过滤器。目前使用两个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