MySQL的求和查询,其中字段包含特定值

时间:2015-03-14 13:23:20

标签: mysql sql database

我需要查询帮助,我有一个这样的表:

| ID  | codehwos    |
| --- | ----------- |
| 1   | 16,17,15,26 |
| 2   | 15,32,12,23 |
| 3   | 53,15,21,26 |

我需要这样一个出口:

| codehwos | number_of_this_code    |
| -------- | ---------------------- |
| 15       | 3                      |
| 17       | 1                      |
| 26       | 2                      |

我想总是连续使用代码。

有人可以一次性查询所有代码吗? 感谢

1 个答案:

答案 0 :(得分:2)

您的数据格式非常糟糕。您不应将列表存储在字符串中,也不应将数字列表存储在字符串中。 SQL具有用于存储列表的出色数据结构。提示:它被称为" table"不是"字符串"。

也就是说,有时人们会被其他人的设计选择所困扰。我们不会自己制作它们,但我们仍然需要完成某些事情。假设你有一个代码列表,你可以做你想要的:

select c.code, count(*)
from codes c join
     table t
     on find_in_set(c.code, t.codehwos) > 0
group by c.code;

如果您对数据结构有任何影响,那么请提倡联结表,这是将此数据存储在关系数据库中的正确方法。