MySQL tidak menyediakan mekanisme gelung terbina dalam untuk lelaran melalui baris jadual. Walau bagaimanapun, terdapat beberapa pendekatan untuk mencapai kefungsian ini:
Kaedah ini melibatkan penggunaan kursor untuk menavigasi melalui baris jadual. Kursor bertindak sebagai penunjuk kepada baris tertentu dalam jadual. Coretan kod berikut menunjukkan cara menggunakan kursor:
DROP PROCEDURE IF EXISTS loop_through_rows; DELIMITER ;; CREATE PROCEDURE loop_through_rows() BEGIN DECLARE cursor_id INT; DECLARE cursor_val VARCHAR; DECLARE done INT DEFAULT FALSE; DECLARE cursor CURSOR FOR SELECT ID, VAL FROM table_A; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cursor; read_loop: LOOP FETCH cursor INTO cursor_id, cursor_val; IF done THEN LEAVE read_loop; END IF; -- Perform operations on cursor_id and cursor_val END LOOP; CLOSE cursor; END; ;; DELIMITER ;
Pendekatan ini menggunakan gelung WHILE untuk mengambil dan memproses baris berulang kali. Gelung berterusan sehingga semua baris telah diproses. Kod berikut menggambarkan kaedah ini:
SET @record = 0; SET @last_record = (SELECT COUNT(*) FROM table_A); WHILE @record < @last_record DO -- Perform operations on the current @record SET @record = @record + 1; END WHILE;
Anda boleh mencipta prosedur tersimpan yang merangkum fungsi gelung. Ini membolehkan anda melaksanakan prosedur dan mengulang melalui baris.
DROP PROCEDURE IF EXISTS loop_rows; DELIMITER ;; CREATE PROCEDURE loop_rows(IN table_name VARCHAR(255)) BEGIN SET @record = 0; SET @last_record = (SELECT COUNT(*) FROM table_name); WHILE @record < @last_record DO -- Perform operations on the current @record SET @record = @record + 1; END WHILE; END; ;; DELIMITER ;
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengulangi semua baris jadual dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!