假设有以下表格:

| id | values | |----|--------| | 1 | 1|2|3 | | 2 | 4|5|6 | | 3 | 7|8|9 |

可以使用如下 SQL 语句来根据竖线拆分并求和:

SELECT id, SUM(SUBSTRING_INDEX(values, '|' , 1)) + 
           SUM(SUBSTRING_INDEX(SUBSTRING_INDEX(values, '|' , 2), '|' , -1)) + 
           SUM(SUBSTRING_INDEX(values, '|' , -1)) AS total
FROM table_name
GROUP BY id;

这里使用了 SUBSTRING_INDEX 函数来拆分字符串。SUBSTRING_INDEX(str, delim, count) 函数会返回字符串 str 中第 count 个出现的分隔符 delim 及其左边的部分。如果 count 为正数,则返回从左往右第 count 个分隔符及其左边的部分;如果 count 为负数,则返回从右往左第 count 个分隔符及其左边的部分。

例如,SUBSTRING_INDEX('1|2|3', '|' , 1) 返回 1SUBSTRING_INDEX('1|2|3', '|' , 2) 返回 1|2SUBSTRING_INDEX('1|2|3', '|' , -1) 返回 3

在上面的 SQL 语句中,我们首先使用 SUM(SUBSTRING_INDEX(values, '|' , 1)) 来求出每行第一个数的和,然后使用 SUM(SUBSTRING_INDEX(SUBSTRING_INDEX(values, '|' , 2), '|' , -1)) 来求出每行第二个数的和,最后使用 SUM(SUBSTRING_INDEX(values, '|' , -1)) 来求出每行最后一个数的和,三个和相加即可得到每行的总和。

MySQL 字符串拆分求和:使用 SUBSTRING_INDEX 函数

原文地址: https://www.cveoy.top/t/topic/lLc6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录