写sql的时候会遇到如下的问题,统计如下表中project_id字段中id的个数。 company_idproject_id7794882,214880,94881,154882,94871,948791402890,2
写sql的时候会遇到如下的问题,统计如下表中project_id字段中id的个数。
company_id | project_id |
---|---|
77 | 94882,214880,94881,154882,94871,94879 |
140 | 2890,2872,3178,4314,4976 |
6 | 2173,5101,274884 |
6 | 4186,4192,4193 |
109 | 214899,94919,94920 |
305 | 5000,4999,5011 |
32 | 4514,5024,5262 |
49 | 1009,1008,1379 |
注意project_id是varchar(255)类型的,我们并没有现成的方法统计这个形如list的字段元素(数据库并没有list这样的对象),只能通过字符串处理的方式。其实规律很简单,我们只需要统计,的个数然后+1就可以了。那么如何求逗号个数呢?我们使用原字符串长度 与 替换了逗号后的字符串长度 相减即可,求字符串长度用char_length()函数。
select company_id
, project_id
, char_length(project_id) - char_length(replace(project_id,',','')) + 1 as tag_cnt
from makepolo.local_material_tag
order by 3 desc
company_id | project_id | tag_cnt |
---|---|---|
77 | 94882,214880,94881,154882,94871,94879 | 6 |
140 | 2890,2872,3178,4314,4976 | 5 |
6 | 2173,5101,274884 | 3 |
6 | 4186,4192,4193 | 3 |
109 | 214899,94919,94920 | 3 |
305 | 5000,4999,5011 | 3 |
32 | 4514,5024,5262 | 3 |
49 | 1009,1008,1379 | 3 |
可以看到,使用这个方法准确无误地计算出了逗号分隔字段元素的数量。
到此这篇关于Mysql统计逗号分隔字段元素的个数 的文章就介绍到这了,更多相关mysql统计逗号元素内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
--结束END--
本文标题: MYSQL统计逗号分隔字段元素的个数
本文链接: https://lsjlt.com/news/177946.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0