Bạn có thể tạo một hàm tùy chỉnh để tính tổng một chuỗi được phân tách bằng dấu phẩy trong MySQL. Đầu tiên chúng ta hãy tạo một bảng. Ở đây, chúng ta có một cột varchar, trong đó chúng ta sẽ thêm các số ở dạng chuỗi -
mysql> create table DemoTable -> ( -> ListOfValues varchar(50) -> ); Query OK, 0 rows affected (0.56 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn -
mysql> insert into DemoTable values('20,10,40,50,60'); Query OK, 1 row affected (0.14 sec)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -
mysql> select *from DemoTable;
Điều này sẽ tạo ra kết quả sau -
+----------------+ | ListOfValues | +----------------+ | 20,10,40,50,60 | +----------------+ 1 row in set (0.00 sec)
Đây là truy vấn để tạo một hàm -
mysql> DELIMITER ?? mysql> create function totalSumInCommaSeparatedString(input varchar(50)) -> returns int -> deterministic -> no sql -> begin -> declare totalSum int default 0; -> while instr(input, ",") > 0 do -> set totalSum = totalSum + substring_index(input, ",", 1); -> set input = mid(input, instr(input, ",") + 1); -> end while; -> return totalSum + input; -> end ?? Query OK, 0 rows affected (0.17 sec) mysql> DELIMITER ;
Hãy để chúng tôi kiểm tra hàm trên để lấy một số chuỗi được phân tách bằng dấu phẩy trong MySQL -
mysql> select totalSumInCommaSeparatedString(ListOfValues) as TotalSum from DemoTable;
Điều này sẽ tạo ra kết quả sau -
+----------+ | TotalSum | +----------+ | 180 | +----------+ 1 row in set (0.00 sec)