导读:在MySQL中,我们经常需要对数据进行分组统计,而有时候我们需要将一列数据中的逗号拆开后再进行分组统计 。本文将介绍如何使用MySQL实现逗号拆开分组 。
1. 使用FIND_IN_SET函数
FIND_IN_SET函数可以查找某个值是否在逗号分隔的字符串中出现过,如果出现过 , 则返回其所在的位置 。利用这个函数,我们可以先将逗号拆开成多行,然后再进行分组统计 。
示例代码:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(tags, ',', n), ',', -1) as tag
FROM articles
JOIN (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers
WHERE n <= LENGTH(tags) - LENGTH(REPLACE(tags, ',', '')) + 1
GROUP BY tag;
2. 使用正则表达式
正则表达式可以匹配逗号分隔的字符串中的每一个元素,通过GROUP_CONCAT函数将其合并成一个新的逗号分隔的字符串,再进行分组统计 。
SELECT tag
FROM (
SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(tags, ',', n), ',', -1) as tag
FROM articles
JOIN (SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) numbers
WHERE n <= LENGTH(tags) - LENGTH(REPLACE(tags, ',', '')) + 1
) t
【mysql分号不结束 mysql逗号拆开分组】总结:以上两种方法都可以实现逗号拆开分组,具体使用哪种方法取决于实际情况 。在数据量较大时 , 第二种方法可能会更快一些 。希望本文能够对大家有所帮助 。
推荐阅读
- 12分钟读懂星爷 mysql原理书
- mysql端口可以改成什么 mysql外网端口
- mysql的配置文件在哪个路径下 mysql配置文件完全
- mysql更改表名sql语句 更改数据表名mysql
- 为什么云服务器打开后无法使用? 云服务器打开怎么用不了
- redis缓存周期 redis周期执行