我有一个表,其中包含的行大多具有分配给每行的单个国家/地区的名称。不幸的是,在某些时候,“国家”字段具有多个值,这些值之间用逗号分隔。现在,大多数行只有一个值,但是在某些字段中还剩有逗号。例如,与阿富汗有关的某些行具有“阿富汗”,而某些行具有“阿富汗”。我当前的SELECT查询将这些值视为两个单独的组。我不允许摆弄数据库以摆脱逗号。

我该怎么做才能使我的SELECT查询忽略逗号并将国家值分组在一起。更为复杂的是,有些行具有多个国家/地区值,同样,我也无法编辑。理想情况下,我希望将它们完全排除在SELECT查询之外(以及在另一个字段中具有负值的行)。

我当前查询给我的示例数据:

,Afghanistan    66
,Albania    1
,Angola 25
,Bangladesh 2225
,Bolivia    824
,Bosnia 1
,Bosnia And Herzegovina 291
,Bosnia and Herzogovina 181
,France, Germany 1
Afghanistan32
Albania 3
Bangladesh  132
Bolivia 295
Bosnia and Herzegovina  79
Botswana    2


这是我的查询:

/* Group by country and count instances selecting the resources has a positive number in the ref ID  */

SELECT field3 "Country", COUNT(field3) FROM `resource` WHERE ref > 0 GROUP BY field3;

最佳答案

SELECT REPLACE(field3, ",", "") AS Country, COUNT(field3)
FROM `resource`
WHERE ref > 0
GROUP BY Country;

关于mysql - 按值分组,忽略逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42631111/

10-16 07:49