MYSQL统计逗号分隔字段元素的个数

 更新时间:2023年01月17日 09:09:41   作者:轱辘科技  
本文主要介绍了MYSQL统计逗号分隔字段元素的个数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

写SQL的时候会遇到如下的问题,统计如下表中project_id字段中id的个数。

company_idproject_id
7794882,214880,94881,154882,94871,94879
1402890,2872,3178,4314,4976
62173,5101,274884
64186,4192,4193
109214899,94919,94920
3055000,4999,5011
324514,5024,5262
491009,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_idproject_idtag_cnt
7794882,214880,94881,154882,94871,948796
1402890,2872,3178,4314,49765
62173,5101,2748843
64186,4192,41933
109214899,94919,949203
3055000,4999,50113
324514,5024,52623
491009,1008,13793

可以看到,使用这个方法准确无误地计算出了逗号分隔字段元素的数量。

到此这篇关于MYSQL统计逗号分隔字段元素的个数 的文章就介绍到这了,更多相关MYSQL统计逗号元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解MySQL中UNION的用法

    详解MySQL中UNION的用法

    这篇文章主要介绍了详解MySQL中UNION的用法,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • mysql中的各种约束条件深入探讨

    mysql中的各种约束条件深入探讨

    在mysql中对编辑的数据进行类型的限制,不满足约束条件的报错,本文给大家分享mysql中的各种约束条件,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-05-05
  • MySQL存储全角字符和半角字符的区别

    MySQL存储全角字符和半角字符的区别

    这篇文章主要介绍了MySQL存储全角字符和半角字符的区别的相关资料,需要的朋友可以参考下
    2017-05-05
  • MySQL约束攻击的原理和复现方式

    MySQL约束攻击的原理和复现方式

    这篇文章主要介绍了MySQL约束攻击的原理和复现方式,具有很好的参考价值,希望对大家有所帮助,
    2023-11-11
  • mysql下为数据库设置交叉权限的方法

    mysql下为数据库设置交叉权限的方法

    由于 SupeSite 需要调用 Discuz! 和 UCHome 的数据,所以如果它们不安装在同一个数据库,SupeSite 的数据库用户必须要对 Discuz! 和 UCHome 的数据库有读取、修改、删除等权限。
    2011-07-07
  • MySQL中EXPLAIN命令详解

    MySQL中EXPLAIN命令详解

    在这里我们将介绍的是MySQL中EXPLAIN解释命令,希望对大家有所帮助
    2014-08-08
  • mysql求和函数使用示例

    mysql求和函数使用示例

    求和函数在某些有计算的情况下会使用到,在本将为大家介绍下mysql中时如何实现求和的,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-09-09
  • MySQL子查询中order by不生效问题的解决方法

    MySQL子查询中order by不生效问题的解决方法

    ORDER BY 语句用于根据指定的列对结果集进行排序,在日常工作中经常会用到,这篇文章主要给大家介绍了关于MySQL子查询中order by不生效问题的解决方法,需要的朋友可以参考下
    2021-07-07
  • 解决Mysql5.7中文乱码的问题

    解决Mysql5.7中文乱码的问题

    在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢,下面小编给大家分享下解决方案
    2017-03-03
  • 远程连接mysql数据库注意点记录

    远程连接mysql数据库注意点记录

    有时候我们需要远程连接mysql数据库,那么就需要注意如下问题,需要的朋友可以参考下
    2012-08-08

最新评论