是否可以对字符串中的数字求和并按其排序?
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, '["', ''), '"]', ''), '","', '')
答案 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上工作的函数,解析数字并添加它们的值。