MySQL bietet keinen integrierten Schleifenmechanismus zum Durchlaufen von Tabellenzeilen. Es gibt jedoch mehrere Ansätze, um diese Funktionalität zu erreichen:
Bei dieser Methode werden Cursor zum Navigieren durch Tabellenzeilen verwendet. Cursor fungieren als Zeiger auf eine bestimmte Zeile in einer Tabelle. Der folgende Codeausschnitt zeigt, wie Cursor verwendet werden:
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 ;
Dieser Ansatz nutzt eine WHILE-Schleife, um Zeilen wiederholt abzurufen und zu verarbeiten. Die Schleife wird fortgesetzt, bis alle Zeilen verarbeitet wurden. Der folgende Code veranschaulicht diese Methode:
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;
Sie können eine gespeicherte Prozedur erstellen, die die Schleifenfunktionalität kapselt. Dadurch können Sie die Prozedur ausführen und Zeilen durchlaufen.
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 ;
Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL alle Zeilen einer Tabelle durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!