首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mysql获取重复的所有术语的名称

使用Mysql获取重复的所有术语的名称
EN

Stack Overflow用户
提问于 2019-12-24 20:20:48
回答 1查看 106关注 0票数 1

我正在编码的东西,以获得所有重复的术语,其中有重复的名称使用mysql查询。我目前的问题是,我在一个单一的事件中获取记录,我需要具有相同名称的所有数据。

我正在运行这个查询。

代码语言:javascript
复制
SELECT a.*,COUNT(name) AS occurrences 
            FROM wp_terms AS a 
            INNER JOIN wp_term_taxonomy AS b ON a.term_id = b.term_id  
            WHERE b.taxonomy = "ticker"
            GROUP BY a.name HAVING occurrences > 1'

当前结果

代码语言:javascript
复制
[0] => stdClass Object
        (
            [term_id] => 13872
            [name] => AAV
            [slug] => aav
            [term_group] => 0
            [occurrences] => 2
        )

预期结果

代码语言:javascript
复制
[0] => stdClass Object
            (
                [term_id] => 13872
                [name] => AAV
                [slug] => aav
                [term_group] => 0
                [occurrences] => 2
            )
    [1] => stdClass Object
            (
                [term_id] => 13873
                [name] => AAV
                [slug] => aav-2
                [term_group] => 0
                [occurrences] => 2
            )

对此有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-24 20:24:08

您可以使用窗口函数获取匹配的行:

代码语言:javascript
复制
SELECT t.*
FROM (SELECT t.*, 
             COUNT(*) OVER (PARTITION BY t.name) as cnt
      FROM wp_terms t JOIN
           wp_term_taxonomy tt
           ON t.term_id = tt.term_id  
      WHERE tt.taxonomy = 'ticker'
    ) t
WHERE cnt > 1
ORDER BY cnt DESC, name;

编辑:

在旧版本的MySQL中有多种方法。一个是:

代码语言:javascript
复制
SELECT t.*, 
       (SELECT COUNT(*)
        FROM wp_term_taxonomy tt
        WHERE tt.term_id = t.term_id AND
              tt.taxonomy = 'ticker'
    ) t
FROM wp_terms t
HAVING cnt > 1
ORDER BY cnt DESC, name;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59468781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档