С много усилия можете да направите това. Наистина обаче това е много, много лош начин за съхраняване на данни.
В духа, че понякога се налага да използваме данни, чийто формат не е под наш контрол:
select id,
(substring_index(value, ',', 1) +
substring_index(substring_index(concat(value, ',0'), ',', 2), ',', -1) +
substring_index(substring_index(concat(value, ',0'), ',', 3), ',', -1) +
substring_index(substring_index(concat(value, ',0'), ',', 4), ',', -1) +
substring_index(substring_index(concat(value, ',0'), ',', 5), ',', -1)
) as thesum
from t;
Вложеното извикано към substring_index()
извличане на n-тата стойност в низа. concat(value, ',0')
е да се справим със случая, когато има по-малко стойности от изразите. В този случай вложеният substring_index()
ще върне последната стойност за всяка стойност от n, по-голяма от броя на елементите в списъка. Конкатенация на 0
към списъка гарантира, че това няма да повлияе на сумата.
SQL Fiddle е тук .