我正在尝试从mysql数据库中获取详细信息。
我的表有位置字段。 数据如下所示
Location
India
UK,Finland, India
USA, NZ, AUS, Spain
我正在尝试获取每个位置的计数。
select count(distinct location) from posting
这是我目前为测试目的而编写的查询。它让我重新计算。
我想获得如下的详细信息。
India -2
UK - 1
Finland -1
USA - 1
类似的东西。
注意请忽略破折号,因为这只是为了向您展示我想要的内容。
请告诉我,因为我不擅长数据库。
答案 0 :(得分:2)
SELECT COUNT(location),location FROM posting;
试一试。它会给你一个类似的输出。
答案 1 :(得分:2)
您不应该在单个列中存储多个值。分隔字符串不是在SQL中存储值的正确方法。正确的方法是联结表。
如果我假设你有一个地点列表,那么你可以这样做:
select l.location, count(*)
from location l join
posting p
on find_in_set(l.location, p.location) > 0;
如果您没有这样的表,我建议您首先关注修复数据结构,而不是试图让这样的查询起作用。