首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中拆分字符串令牌和按计数分组?

如何在mysql中拆分字符串令牌和按计数分组?
EN

Stack Overflow用户
提问于 2018-01-22 15:36:53
回答 1查看 864关注 0票数 2

如何拆分字符串并按拆分的token进行分组?我想要得到分组拆分的令牌的每个计数。

我有一个varchar列,它存储了一个可以被',‘拆分的字符串。下面是该列的行数据。(列名为LogData)

代码语言:javascript
复制
[LogData]
1,2,3,4

1,3,1,9

2,1,3

6,2

然后我想像下面这样显示(选择)。

代码语言:javascript
复制
[token] [count]
  1    : 4
  2    : 3
  3    : 3
  4    : 1
  6    : 1
  9    : 1

如果可能的话,我可以得到一个关于这个问题的答案并解释一下吗?(我对db不在行)

EN

回答 1

Stack Overflow用户

发布于 2018-01-23 14:32:31

使用并调整来自undefined_variable的注释,正确的查询如下所示:

代码语言:javascript
复制
SELECT value,COUNT(*) FROM
(SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t0.logdata, ',', n.n), ',', -1) value
  FROM t0 CROSS JOIN 
  (
   SELECT a.N + b.N * 10 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
    ORDER BY n 
   ) n
 WHERE n.n <= 1 + (LENGTH(t0.logdata) - LENGTH(REPLACE(t0.logdata, ',', '')))
 ORDER BY value) nt0 GROUP BY value
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48376623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档