Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để tính tổng một chuỗi được phân tách bằng dấu phẩy (chuỗi có số) trong MySQL?


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)