Dynamisches Durchlaufen von Spaltennamen in einer MySQL-Tabelle
Diese Frage untersucht eine Methode zum Durchlaufen von Spaltennamen in einer MySQL-Tabelle mithilfe einer gespeicherten Prozedur geschrieben in nativem SQL. Das Ziel besteht darin, eine Liste von Spaltennamen zu erhalten und dann eine gespeicherte Prozedur basierend auf jedem Spaltennamen als Variable auszuführen.
Spaltennamen abrufen
So rufen Sie Spaltennamen ab aus einer MySQL-Tabelle verwenden Sie die Funktion SHOW COLUMNS FROM
Durchlaufen von Spaltennamen
Sobald die Spaltennamen abgerufen wurden, können sie gespeichert werden in einer Schleife mit einem Cursor. Ein Cursor ist ein Iterator, der das zeilenweise Durchlaufen einer Ergebnismenge ermöglicht. Hier ist ein Beispiel:
DECLARE col_names CURSOR FOR SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' ORDER BY ordinal_position;
Dieser Cursor wählt die Spaltennamen aus der angegebenen Tabelle aus, ordnet sie nach ihrer Position und benennt den Cursor mit Spaltennamen.
Ausführen einer Schleife
Um die Spaltennamen zu durchlaufen und eine gespeicherte Prozedur auszuführen, verwenden Sie Folgendes Schleife:
SET i = 1; the_loop: LOOP IF i > num_rows THEN CLOSE col_names; LEAVE the_loop; END IF; FETCH col_names INTO col_name; //do whatever else you need to do with the col name SET i = i + 1; END LOOP the_loop;
Diese Schleife verwendet eine FETCH-Anweisung, um den nächsten Spaltennamen in eine Variable col_name abzurufen. Innerhalb der Schleife können alle notwendigen Aktionen basierend auf dem Spaltennamen ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Spaltennamen mithilfe einer gespeicherten Prozedur dynamisch durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!