Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted by yammy ( 19 years ago )
DROP PROCEDURE if EXISTS foo;// 
CREATE PROCEDURE foo()
BEGIN

        DECLARE vtable VARCHAR(255);
        DECLARE done INT DEFAULT 0;
	DECLARE id INT;
	DECLARE quant VARCHAR(255);
	DECLARE user_login VARCHAR(60);
        DECLARE c1 CURSOR FOR SHOW TABLES LIKE 'wp\_%\_comments';
        DECLARE CONTINUE HANDLER FOR sqlstate '02000' SET done = 1;

	DROP TABLE if EXISTS mytemp;
	CREATE TEMPORARY TABLE mytemp (id INT, quant INT, user_login VARCHAR(60) );
        
        OPEN c1;
 
        REPEAT
                FETCH c1 INTO vtable;
                IF NOT done THEN
                        -- SELECT vtable AS tabela;
			-- SET @user_id = SUBSTRING_INDEX(SUBSTRING('", vtable ,"', INSTR('", vtable, "', '_') + 1), '_', 1);
			SET @user_id =  SUBSTRING( vtable , 4 ) + 0;
 
			SELECT @user_id;

			SET @sql = "SELECT user_login FROM wp_users WHERE id = @user_id";
			PREPARE stmt FROM @sql;
			EXECUTE stmt;
			DEALLOCATE PREPARE stmt;						
			
                        SET @sql = CONCAT( "INSERT INTO mytemp VALUES ( @user_id, (SELECT count(*) FROM ", vtable, "), '' )"  );
                        PREPARE stmt FROM @sql;
                        EXECUTE stmt;
                        DEALLOCATE PREPARE stmt;
                END IF;
        UNTIL done END REPEAT;
        CLOSE c1;
 
        SELECT * FROM mytemp ORDER BY quant DESC LIMIT 10;
END
//

 

Revise this Paste

Your Name: Code Language: