Как получить Count из Результата MySql Query, где каждый Результат сам является Разной Таблицей? - PullRequest
0 голосов
/ 06 июля 2018

У меня ResultSet Mysql Query примерно так: -

select concat(category_name,subcategory_name) from category

, который возвращает результаты примерно так: - -

MovieComedyMovies
CarsSportsCars
ШоуComedyShows

Эти 3 результата являются разными таблицами.
Я хочу выполнить Count () для этих таблиц, которые я получаю в результатах, чтобы проверить, содержат ли эти таблицы какие-либо данные.
П.С. - Я использую MySQl 5.6

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Я копирую ваш пример запроса для исторических целей:

select concat(category_name,subcategory_name) from category

Предполагая, что это запрос, который все еще рисует данные:

SELECT count(Name) as Total, Name 
FROM (
       select concat(category_name,subcategory_name) as Name from category
     ) data
group by Name

Что-то в этом роде. Если вы можете построить скрипку с MCVE , вы можете получить более конкретный ответ.

0 голосов
/ 06 июля 2018

Если я правильно понимаю ваш комментарий, вы можете написать подзапрос к предложению select, например:

SELECT (SELECT COUNT(*) FROM MovieComedyMovies) AS MovieComedyMovies,
       (SELECT COUNT(*) FROM CarsSportsCars) AS CarsSportsCars

Но из вашего вопроса, вы можете сделать это.

CASE WHEN с функцией SUM.

select SUM(CASE WHEN concat(category_name,subcategory_name) = 'MovieComedyMovies' THEN 1 ELSE 0 END),
       SUM(CASE WHEN concat(category_name,subcategory_name) = 'CarsSportsCars' THEN 1 ELSE 0 END)
from category

Редактировать

Из вашего комментария я догадался, что вы можете попробовать это.

select concat(category_name,subcategory_name),count(*)  
from category
Group by concat(category_name,subcategory_name) 
...