Skip to main content

Mysql: Multiple loop cursor in procedure

DELIMITER $$

DROP PROCEDURE IF EXISTS `updatequestion` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `updatequestion`()

 BLOCK1: begin
     declare v_col1 int;
     declare no_more_rows1 boolean default FALSE;
     declare cursor1 cursor for
         select col1
         from   MyTable;
     declare continue handler for not found
         set no_more_rows1 := TRUE;


     open cursor1;
     LOOP1: loop
         fetch cursor1
         into  v_col1;
         if no_more_rows1 then
             close cursor1;
             leave LOOP1;
         end if;


         BLOCK2: begin
             declare v_col2 int;
             declare no_more_rows2 boolean default FALSE;
             declare cursor2 cursor for
                 select col2
                 from   MyOtherTable
                 where  ref_id = v_col1;
             declare continue handler for not found
                 set no_more_rows2 := TRUE;
             open cursor2;
             LOOP2: loop
                 fetch cursor2
                 into  v_col2;
                 if no_more_rows then
                     close cursor2;
                     leave LOOP2;
                 end if;
             end loop LOOP2;
         end BLOCK2;

     end loop LOOP1;

end BLOCK1$$


DELIMITER ;

Comments

Popular posts from this blog

Custom Sorting Array List in PHP

 <?php $order = array("Z","Srilanka","34", "Canada", "India", "USA"); $array = array(     array('id' => 7867867, 'title' => 'USA'),     array('id' => 3452342, 'title' => 'India'),     array('id' => 1231233, 'title' => 'Srilanka'),     array('id' => 5867867, 'title' => 'Z'), ); usort($array, function ($a, $b) use ($order) {     $pos_a = array_search($a['title'], $order);     $pos_b = array_search($b['title'], $order);     return $pos_a - $pos_b; }); print_r($array); ?>

simple recursive function to copy entire directories

<?php function recurse_copy ( $src , $dst ) {     $dir = opendir ( $src );     @ mkdir ( $dst );     while( false !== ( $file = readdir ( $dir )) ) {         if (( $file != '.' ) && ( $file != '..' )) {             if ( is_dir ( $src . '/' . $file ) ) {                 recurse_copy ( $src . '/' . $file , $dst . '/' . $file );             }             else {                 copy ( $src . '/' . $file , $dst . '/' . $file );             }         }     }     closedir ( $dir ); } ?>