我需要查询帮助,我有一个这样的表:
| 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 |
我想总是连续使用代码。
有人可以一次性查询所有代码吗? 感谢
答案 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;
如果您对数据结构有任何影响,那么请提倡联结表,这是将此数据存储在关系数据库中的正确方法。