开发者社区> 问答> 正文

如何计算逗号分隔列表MySQL中的项目?mysql

所以我的问题很简单:

我在SQL中有一列,这是一个用逗号分隔的列表(即cats,dogs,cows,),我需要仅使用sql 来计算其中的项目数(所以无论我的功能是什么(现在将其称为fx)都将像这样工作:

SELECT fx(fooCommaDelimColumn) AS listCount FROM table WHERE id=... 我知道那是有缺陷的,但是您可以理解(顺便说一句,如果的值fooCommaDelimColumn是cats,dogs,cows,,则listCount应该返回4 ...)。

就这些。

展开
收起
保持可爱mmm 2020-05-17 12:30:01 484 0
1 条回答
写回答
取消 提交回答
  • 没有内置函数可以计算字符串中子字符串的出现次数,但是您可以计算原始字符串与相同字符串之间的差异(不带逗号):

    LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', '')) 现在已经差不多在8年的时间里对其进行了多次编辑(哇!),所以为了清楚起见:上面的查询不需要+ 1,因为OPs数据带有多余的逗号。

    确实,通常情况下,对于如下所示的字符串:foo,bar,baz正确的表达式为

    LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1来源:stack overflow

    2020-05-17 12:40:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像