mysql +从一个字段到Sum的所有数字

时间:2015-12-15 15:39:02

标签: mysql string

是否可以对字符串中的数字求和并按其排序?

Example values: 19, 21
19 Should be transformed to 10. Explanation: 1+9=10
21 Should be transformed to  3. Explanation: 2+1= 3

计算这些结果后,表格需要按结果值排序(使用SORT BY)。

最初,我将这些值存储为JSON数组,因此它是["1","9"]["2","1"],并且为了解析JSON我使用replace进行如下操作:< / p>

REPLACE(REPLACE(REPLACE(item_qty, '["', ''),  '"]', ''), '","', '')

2 个答案:

答案 0 :(得分:0)

尝试类似的事情:

SELECT (
    SUBSTRING('["1","9"]', 3, 3) +
    SUBSTRING('["1","9"]', 7, 7)
) AS sumOfDigits;

然后,如果值["1","9"]存储在名为json的列中,并且该表名为table,那么您可以执行此操作:

SELECT * FROM (
    SELECT table.*, (
        SUBSTRING('json', 3, 3) +
        SUBSTRING('json', 7, 7)
    ) AS sumOfDigits
    FROM table
) tmp
ORDER BY sumOfDigits;

答案 1 :(得分:0)

我会定义一个函数来完成总和,如下所示:

'SEC123456'

您还可以创建一个直接在json sting上工作的函数,解析数字并添加它们的值。