MySQL 中的 GROUP BY 使用通配符

Posted

技术标签:

【中文标题】MySQL 中的 GROUP BY 使用通配符【英文标题】:GROUP BY in MySQL using Wildcards 【发布时间】:2013-03-22 01:01:16 【问题描述】:

我四处搜索,发现了一些类似的问题,但没有什么能完全解决我的问题。我会尽量准确地解释这一点。

所以我在 mysql 数据库中有一组组织的数据,表中的一个字段是指我们在不同国家/地区的合作伙伴组织。这个的形式是这样的:

公司1(中国)

公司 2(美国)

公司3(中国)

我正在尝试使用 COUNT(*) 和 GROUP BY 查找每个国家/地区的合作伙伴数量,但我无法弄清楚如何仅按包含国家/地区的数据部分进行分组,而忽略之前的公司名称它。我找到的最接近的东西使用了 Oracle 的 regexp_replace 函数,但我无法在 MySQL 中找到替代品。

【问题讨论】:

【参考方案1】:

如果您有国家/地区列表,您可以执行以下操作:

select c.country, count(*)
from t join
     countries c
     on t.company like concat('%(', c.country, ')%')
group by c.country

【讨论】:

附注:只是为了提高可读性,交换 fromjoin 表可能是有意义的

以上是关于MySQL 中的 GROUP BY 使用通配符的主要内容,如果未能解决你的问题,请参考以下文章

使用 MySQL 通过 JOIN 获取 GROUP BY 中的 SUM

如何使用 GROUP BY 连接 MySQL 中的字符串?

MySQL - 使用不在列表中的列对 Group By 语句排序 [重复]

如何使用 group by [重复] 使用 mySQL 删除数据库中的记录

使用 LEFT JOIN 的 MySQL 视图中的问题... GROUP BY

使用 group by 汇总列并存储为 MySQL 中的新列(永久)