当我在查询中使用“GROUP_CONCAT”和“HAVING”时如何计算 MySQL 结果?

Posted

技术标签:

【中文标题】当我在查询中使用“GROUP_CONCAT”和“HAVING”时如何计算 MySQL 结果?【英文标题】:How to COUNT MySQL results when I use “GROUP_CONCAT” and “HAVING” in the query? 【发布时间】:2016-07-03 07:18:27 【问题描述】:

所以我有一个我想要计算的 mysql 查询。最初我使用 wordpress 的 get_results("") 但我还需要在不同的查询中计算总数,因为在我的原始查询中我限制结果以创建页面。

所以这是我的原始查询,有谁知道我如何计算这个?

SELECT wpp.ID, post_title, wp_terms.name AS category, wp_terms.slug AS slug, supplier_company, 
    GROUP_CONCAT(wp_terms.slug SEPARATOR ', ') AS allslug,
    GROUP_CONCAT(wp_terms.name SEPARATOR ', ') AS allcatname
    FROM wp_posts AS wpp
    LEFT JOIN wp_term_relationships ON wpp.ID = object_id
    LEFT JOIN wp_terms ON term_taxonomy_id = wp_terms.term_id
    LEFT JOIN wp_teleapo_supplier AS s ON wpp.post_author = s.ID



    /* BASIC SEARCH on normal fields */
    WHERE post_type = 'post' 


    GROUP BY wpp.ID

    /* SEARCH on CONCAT FIELDS*/
    HAVING

    (post_title LIKE '%%'
    OR allcatname LIKE '%%'
    OR allslug LIKE '%%'
    OR supplier_company LIKE '%%')
    AND (allslug LIKE '%health-and-beauty%'
    ) AND (allslug LIKE '%%'
    ) AND 

    /* ADD EXTRA SEARCH TAGS: */
    /* Language tag */
     allslug LIKE '%english%' 
    /* ..... tag */

    /* AND allslug LIKE '%......... %' */
    ORDER BY post_date DESC 

【问题讨论】:

你可能想看看here 您需要多少计数?输出行的总数还是每组的计数? 迪伦,我需要计算结果。谢谢约阿希姆。我去看看! Joachim,我能够获取该值并通过我的 AJAX 回调将其返回,但返回的字符串现在从 ["a":1,"b":2] 更改为 "0":a:1,b:2,"count":1 并且没有这些直括号我无法访问数据,例如前!!怎么办? 【参考方案1】:

只需在 SELECT 查询之后直接检索 found_rows

select found_rows();

【讨论】:

感谢您的帮助。抱歉,多年后我将其标记为正确。非常感谢您对我的问题的支持! : D

以上是关于当我在查询中使用“GROUP_CONCAT”和“HAVING”时如何计算 MySQL 结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server中使用group_concat进行查询[重复]

使用 HAVING GROUP_CONCAT 计算记录行

MySQL 和 GROUP_CONCAT() 最大长度

group_concat sqlite 和 order by

为啥 HAVING 和 GROUP_CONCAT 在此查询中不能一起工作?

Laravel 5 中的 group_concat() 问题