Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में नेस्टेड लूप में एकाधिक कर्सर

आपको अपने पहले कर्सर लूप के अंदर एक नया ब्लॉक परिभाषित करना होगा और उस ब्लॉक में विभिन्न घोषणाओं का उपयोग करना होगा।

कुछ इस तरह:

BLOCK1: begin
    declare v_col1 int;                     
    declare no_more_rows boolean1 := 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 := 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;


  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. PHQL जहां xxx IN () को केवल 1 डेटा मिल सकता है

  3. MySQL त्रुटि कोड 1235

  4. MySQL तालिका में कॉलम कैसे स्थानांतरित करें?

  5. कैसे जांचें कि सक्षम/अक्षम कुंजियां काम करती हैं या नहीं?