Con grande sforzo, puoi farlo. Tuttavia, questo è davvero un pessimo modo per archiviare i dati.
Nello spirito che a volte dobbiamo utilizzare dati il cui formato non è sotto il nostro controllo:
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;
Il nidificato chiamato a substring_index()
recupera l'ennesimo valore nella stringa. Il concat(value, ',0')
è gestire il caso in cui sono presenti meno valori rispetto alle espressioni. In questo caso, il substring_index()
annidato restituirà l'ultimo valore per qualsiasi valore di n maggiore del numero di elementi nell'elenco. 0
concatenando alla lista assicura che ciò non influisca sulla somma.
SQL Fiddle è qui .