代码之家  ›  专栏  ›  技术社区  ›  Sumit

如何从mysql查询的结果中获取计数,其中每个结果都是不同的表本身?

  •  -1
  • Sumit  · 技术社区  · 7 年前

    我有一个mysql查询的结果集,如下所示:

    select concat(category_name,subcategory_name) from category
    

    结果是这样的:--

    电影电影
    卡斯波特斯卡
    表演

    这3个结果本身就是不同的表。
    我想对这些表执行count(),我得到的结果是-检查这些表是否包含任何数据。
    P.S-我用的是MySQL5.6

    2 回复  |  直到 7 年前
        1
  •  0
  •   D-Shih    7 年前

    如果我正确理解您的评论,您可以在 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) 
    
        2
  •  0
  •   Héctor Álvarez    7 年前

    出于历史目的,我正在复制您的示例查询:

    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
    

    一些类似的东西。如果你能建立一个 fiddle 用一个 MCVE 你可能会得到一个更具体的答案。

    推荐文章