Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menjumlahkan string yang dipisahkan koma dalam SQL?

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL 5.6 DATETIME tidak menerima milidetik/mikrodetik

  2. Alternatif Meja Kerja MySQL - Manajemen Konfigurasi ClusterControl

  3. Mengapa INSERT IGNORE menambah kunci utama auto_increment?

  4. Akses database jarak jauh mysql dari baris perintah

  5. Mysql secara dinamis membangun string kueri dalam prosedur tersimpan berdasarkan logika