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

phép gán biến người dùng mysql với số lượng (*)

Như @JagaSrik đã nói, cần có thêm thông tin về dữ liệu và bảng của bạn để đưa ra câu trả lời đúng. Tuy nhiên, nếu bạn cần thay đổi một bảng như thế này:

name                |     date      |  id
-----------------------------------------
total Inscription   |   2017-07-10  |   2
total Inscription   |   2020-04-20  |   2
total Inscription   |   2020-04-21  |   3
total Inscription   |   2020-06-17  |   4
total Inscription   |   2020-06-18  |   2

đến một cái gì đó như thế này:

     date      |  total
-----------------------------------------
   2017-07-10  |   2
   2020-04-20  |   4
   2020-04-21  |   7
   2020-06-17  |   11
   2020-06-18  |   13

bạn có thể sử dụng CURSOR .

Đối với ví dụ này:

DELIMITER $$
CREATE PROCEDURE `countIds`()
BEGIN
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE total INTEGER DEFAULT 0;
    DECLARE theCount INTEGER DEFAULT 0;
    DECLARE theDate varchar(100) DEFAULT "";    

        DEClARE curCount 
        CURSOR FOR 
            SELECT `id`,`date` FROM table1;

        DECLARE CONTINUE HANDLER 
    FOR NOT FOUND SET finished = 1;
        
    OPEN curCount;

    getCount: LOOP
        FETCH curCount INTO theCcount,theDate;
        IF finished = 1 THEN 
            LEAVE getCount;
        END IF;
        SET total = total + theCount;
        select theDate, total;
    END LOOP getCount;
    CLOSE curCount;       

END$$
DELIMITER ;

Tuy nhiên, CURSOR là một cách để thực hiện công việc của bạn và có thể có nhiều phương pháp hiệu quả hơn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa ký tự xuống dòng trong Mysql DB

  2. Cấp phép và trình kết nối MySQL

  3. MySQL không sử dụng chỉ mục (Sử dụng filesort) khi sử dụng ORDER BY

  4. đề xuất cấu trúc bảng mysql?

  5. Đang cố gắng lấy lại mật khẩu từ cơ sở dữ liệu