2013-03-22 88 views
2

我周围搜索,发现了一些类似的问题,但没有什么能完全解决我的问题。我会尽力准确地解释这一点。GROUP BY在MySQL中使用通配符

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

公司1(中国)

Company2的(美国)

公司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 
+0

一个侧面说明:只是为了提高可读性,它可能是有意义的交换'from'和'join'表 – zerkms 2013-03-22 01:07:08

+0

好主意,完美地工作。谢谢! – trevwilson 2013-03-22 01:27:04