Z wielkim wysiłkiem możesz to zrobić. Naprawdę jednak jest to bardzo, bardzo zły sposób przechowywania danych.
W duchu, że czasami musimy używać danych, których format nie jest pod naszą kontrolą:
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;
Zagnieżdżony wywołany do substring_index()
pobierz n-tą wartość w ciągu. concat(value, ',0')
jest obsługa przypadku, w którym jest mniej wartości niż wyrażeń. W tym przypadku zagnieżdżone substring_index()
zwróci ostatnią wartość dla dowolnej wartości n większej niż liczba pozycji na liście. Łączenie 0
do listy zapewnia, że nie wpłynie to na sumę.
SQL Fiddle jest tutaj .