拓展阅读
MySQL 02 truncate table 与 delete 清空表的区别和坑
MySQL 03 Expression 1 of ORDER BY clause is not in SELECT list,references column
MySQL 04 EMOJI 表情与 UTF8MB4 的故事
MySQL 05 MySQL入门教程(MySQL tutorial book)
MySQL 06 mysql 如何实现类似 oracle 的 merge into
MySQL 08 datetime timestamp 以及如何自动更新,如何实现范围查询
MySQL 09 MySQL-09-SP mysql 存储过程
场景
mysql 表中,一些收件人之类的,直接用逗号分隔。
但是需要统计发送给多少人时,就比较麻烦。
有什么方法可以直接拆分实现吗?
确认步骤
在 MySQL 中,你可以使用字符串处理函数来拆分逗号分隔的字段,并计算拆分后的总数。下面是一个示例:
假设有一个表 my_table
,其中有一个字段 my_column
包含逗号分隔的值:
SELECT my_column FROM my_table;
你可以使用以下查询语句来计算每个字段中逗号分隔值的数量:
SELECT my_column,
LENGTH(my_column) - LENGTH(REPLACE(my_column, ',', '')) + 1 AS count_values
FROM my_table;
解释:
LENGTH(my_column)
计算my_column
字段的总长度。REPLACE(my_column, ',', '')
将my_column
字段中的逗号替换为空字符串,然后计算替换后的长度。- 通过
LENGTH(my_column) - LENGTH(REPLACE(my_column, ',', ''))
计算逗号的数量。 - 最后加上 1,因为逗号的数量比值的数量少 1。
如果你想要计算所有记录中逗号分隔值的总和,可以使用以下查询:
SELECT SUM(LENGTH(my_column) - LENGTH(REPLACE(my_column, ',', '')) + 1) AS total_count
FROM my_table;
这个查询会计算所有记录中逗号分隔值的总数量。
参考资料
-