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
【讨论】:
附注:只是为了提高可读性,交换from
和 join
表可能是有意义的以上是关于MySQL 中的 GROUP BY 使用通配符的主要内容,如果未能解决你的问题,请参考以下文章
使用 MySQL 通过 JOIN 获取 GROUP BY 中的 SUM
MySQL - 使用不在列表中的列对 Group By 语句排序 [重复]
如何使用 group by [重复] 使用 mySQL 删除数据库中的记录