繁体   English   中英

在字段包含某些值的MySQL的总和查询

[英]Sum query for MySQL where field contain certain values

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

| 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                      |

我想一直汇总一行中使用代码的所有时间。

任何人都可以一次查询所有代码吗? 谢谢

您的数据格式很差。 您不应该将列表存储在字符串中,也不要将数字列表存储在字符串中。 SQL具有用于存储列表的良好数据结构。 提示:它被称为“表”而不是“字符串”。

就是说,有时人们会被别人真正糟糕的设计选择所束缚。 我们不会自己制造它们,但是我们仍然需要完成一些工作。 假设您具有代码列表,则可以执行以下操作:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM