Dengan usaha keras, Anda bisa melakukannya. Namun, sungguh, ini adalah cara yang sangat, sangat buruk untuk menyimpan data.
Dengan semangat terkadang kita harus menggunakan data yang formatnya di luar kendali kita:
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;
Bersarang dipanggil ke substring_index()
ambil nilai ke-n dalam string. concat(value, ',0')
adalah untuk menangani kasus di mana ada lebih sedikit nilai daripada ekspresi. Dalam hal ini, substring_index()
. bersarang akan mengembalikan nilai terakhir untuk setiap nilai n lebih besar dari jumlah item dalam daftar. Menggabungkan 0
ke daftar memastikan bahwa ini tidak mempengaruhi jumlah.
SQL Fiddle di sini .