可以使用 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 函数将每个数值相加,得到最终结果。
MySQL 分割字符串并求和:使用 SUBSTRING_INDEX 和 SUM 函数

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

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