MySQL Объединение двух запросов, чтобы получить два счета - PullRequest
0 голосов
/ 29 марта 2019

Моя таблица содержит элементы, каждый из которых имеет номер категории.У меня есть хороший запрос, который подсчитывает много предметов, которые он находит в каждой категории.Это выглядит так, если бы я искал слово «сыр»

$result=mysql_query("SELECT category, COUNT(*) AS 'itemcount' 
                     FROM mytable 
                     WHERE title like '%cheese%' 
                     GROUP BY category 
                     order by itemcount")

Теперь у меня есть список всех номеров категорий, в которых есть «сыр», и подсчет количества в каждой категории.Я также использую второй запрос для подсчета ИТОГО количества «сырных» предметов.Вместо того, чтобы делать второй запрос, есть ли способ добавить все счета элементов, чтобы получить итоговое значение ... Так что нужен только один запрос?

`

1 Ответ

2 голосов
/ 29 марта 2019

Вы можете добавить WITH ROLLUP к своему предложению GROUP BY, и это даст вам дополнительную строку в конце таблицы (со значением NULL для категории), в которой будет указано общее количество сыров, например

$result=mysql_query("SELECT category, COUNT(*) AS 'itemcount' 
                     FROM mytable 
                     WHERE title like '%cheese%' 
                     GROUP BY category WITH ROLLUP 
                     ORDER BY itemcount");

Пример вывода:

category    itemcount
restaurant          5
hotel               2
shop               11
NULL               18
...