MySQL 分割字符串并求和:使用 SUBSTRING_INDEX 和 SUM 函数
可以使用 SUBSTRING_INDEX 函数和 SUM 函数实现 MySQL 中根据竖线拆分字符串并求和的功能。
假设有一个表格 t1,其中有一个字段 values 存储了多个数值,用竖线分隔,如下所示:
values
-------
1|2|3
4|5|6
7|8|9
要求将 values 字段按竖线拆分,并对每行拆分的值求和,可以使用如下 SQL 语句:
SELECT SUM(SUBSTRING_INDEX(values, '|', 1)) +
SUM(SUBSTRING_INDEX(SUBSTRING_INDEX(values, '|', 2), '|', -1)) +
SUM(SUBSTRING_INDEX(SUBSTRING_INDEX(values, '|', 3), '|', -1)) AS total
FROM t1;
执行结果如下:
total
-----
45
解释:
SUBSTRING_INDEX(values, '|', 1)表示取values字段中第一个竖线之前的部分,即每行的第一个数值。SUBSTRING_INDEX(SUBSTRING_INDEX(values, '|', 2), '|', -1)表示先取values字段中第二个竖线之前的部分,再取该部分中最后一个竖线之后的部分,即每行的第二个数值。SUBSTRING_INDEX(SUBSTRING_INDEX(values, '|', 3), '|', -1)同理,即每行的第三个数值。SUM函数将每个数值相加,得到最终结果。
原文地址: https://www.cveoy.top/t/topic/lLco 著作权归作者所有。请勿转载和采集!