Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tính tổng một cột được phân tách bằng dấu phẩy trong MySQL 4 (không phải 5)

Để thực hiện loại thao tác chuỗi không tầm thường này, bạn cần sử dụng các thủ tục được lưu trữ, đối với MySQL, chỉ mới xuất hiện cách đây 6 năm, trong phiên bản 5.0.

MySQL 4 hiện đã rất cũ, phiên bản mới nhất từ ​​nhánh 4.1 là 4.1.25, vào năm 2008. Nó không được hỗ trợ nữa. Hầu hết các bản phân phối Linux không cung cấp nó nữa. Đã đến lúc nâng cấp.

Đây là một giải pháp hoạt động cho 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 ;

Ví dụ:

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. Cơ sở dữ liệu kết quả là đối tượng hay mảng?

  2. Theo dõi thời gian thực trong bản đồ google

  3. Truy vấn nhiều cơ sở dữ liệu cùng một lúc

  4. Ví dụ ORD () - MySQL

  5. tính tổng thời gian kiểu sử dụng sql