Mysql
 sql >> база данни >  >> RDS >> Mysql

присвояване на потребителска променлива на mysql с count(*)

Както каза @JagaSrik, има нужда от повече информация за вашите данни и таблици, за да дадете правилния отговор. Въпреки това, ако трябва да промените таблица като тази:

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

на нещо подобно:

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

можете да използвате КУРСОР .

За този пример:

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 ;

Въпреки това КУРСОР е начин да вършите работата си и може да има по-ефективни методи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Множество обединявания в MySQL таблица

  2. Django MySQL грешка при създаване на таблици

  3. MySQL Как да ИЗБЕРЕМ данни от таблица, записана днес?

  4. Какво означава КЛЮЧОВАТА ключова дума?

  5. JDBC MySql практики за обединяване на връзки, за да се избегне изчерпаният пул за връзки