sql >> Database teknologi >  >> RDS >> Mysql

MySQL loop gennem tabeller

Prøv dette:

delimiter //

drop procedure if exists hunt //
create procedure hunt()
begin
    DECLARE done BOOL default false;
    DECLARE tablename CHAR(255);

    DECLARE cur1 cursor for SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_SCHEMA = "wholesale_production" and COLUMN_NAME LIKE "%first%" ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    open cur1;

    myloop: loop
        fetch cur1 into tablename;
        if done then
            leave myloop;
        end if;
        set @sql = CONCAT('select * from `wholesale_production`.', tablename, ' where created_at >= ''2012-10-01''');
        prepare stmt from @sql;
        execute stmt;
        drop prepare stmt;
    end loop;

    close cur1;
end //

delimiter ;

call hunt();


  1. Alarmer og meddelelser fra SkySQL

  2. Hvordan forhindrer man overskridelse af max_user_connections ved genindlæsning/opdatering af siden flere gange?

  3. Hvordan opretter man json-format med group-concat mysql?

  4. Mysql rekursiv lagret procedure...Grænse 0 nået...kan ikke ændre variablen max_sp_recursion_depth