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

Menjumlahkan kolom yang dipisahkan koma di MySQL 4 (bukan 5)

Untuk melakukan manipulasi string yang tidak sepele ini, Anda perlu menggunakan prosedur tersimpan, yang, untuk MySQL, baru muncul 6 tahun yang lalu, di versi 5.0.

MySQL 4 sekarang sudah sangat tua, versi terbaru dari cabang 4.1 adalah 4.1.25, pada tahun 2008. Tidak didukung lagi. Sebagian besar distribusi Linux tidak menyediakannya lagi. Saatnya untuk meningkatkan versi.

Berikut adalah solusi yang berfungsi untuk MySQL 5.0+:

DELIMITER //
CREATE FUNCTION SUM_OF_LIST(s TEXT)
  RETURNS DOUBLE
  DETERMINISTIC
  NO SQL
BEGIN
  DECLARE res DOUBLE DEFAULT 0;
  WHILE INSTR(s, ",") > 0 DO
    SET res = res + SUBSTRING_INDEX(s, ",", 1);
    SET s = MID(s, INSTR(s, ",") + 1);
  END WHILE;
  RETURN res + s;
END //
DELIMITER ;

Contoh:

mysql> SELECT SUM_OF_LIST("5,2.1") AS Result;
+--------+
| Result |
+--------+
|    7.1 |
+--------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan pilih MySQL dengan CASE atau IF ELSEIF? Tidak yakin bagaimana mendapatkan hasilnya

  2. Skema XSD ke MySQL

  3. Menyortir kueri MySQL dengan ORDER BY atau dengan fungsi sortir PHP

  4. Apa metode terbaik untuk menggunakan/menyimpan kunci enkripsi di MySQL

  5. Cara Menggunakan MySQL Rollup