Ценовой фильтр с использованием MySQL - PullRequest
0 голосов
/ 05 августа 2011

Я хотел бы создать ценовой фильтр из следующей таблицы.В настоящее время работает с двумя запросами MySQL, первый из которых создает диапазон цен, а второй создает счет путем вызова AJAX.

enter image description here

Есть ли другой способ получить оба в одном запросе.

Ожидаемый результат:

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

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

Предполагая, что у вас есть таблица 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
0 голосов
/ 05 августа 2011

Допустим, этот запрос возвращает ваш ценовой диапазон:

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

Я думаю, это должно работать. Я не знаю, если это лучший способ, но попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...