Um Spaltennamen in einer MySQL-Tabelle mit SQL abzurufen und zu durchlaufen, sollten Sie den folgenden Ansatz in Betracht ziehen:
1. Abrufen der Spaltennamen
Verwenden Sie die Anweisung SHOW COLUMNS FROM [table_name], um eine Liste aller Spaltennamen in der angegebenen Tabelle abzurufen. Dieser Befehl liefert einen Ergebnissatz, in dem jede Zeile eine einzelne Spalte darstellt und Metadaten wie den Spaltennamen enthält.
SHOW COLUMNS FROM table_name;
2. Erstellen eines Cursors
Um die iterative Verarbeitung der Spaltennamen zu ermöglichen, erstellen Sie einen Cursor mit der Syntax DECLARE col_names CURSOR FOR, wobei col_names den Namen des Cursors darstellt. Geben Sie innerhalb der Cursordefinition eine Abfrage an, um die Spaltennamen abzurufen und sicherzustellen, dass sie nach ihrer Ordnungsposition sortiert sind.
DECLARE col_names CURSOR FOR SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'table_name' ORDER BY ordinal_position;
3. Bestimmen der Anzahl der Spalten
Um die Schleifensteuerung zu erleichtern, führen Sie die Funktion FOUND_ROWS() aus und speichern Sie das Ergebnis in einer Variablen, num_rows. Dieser Wert stellt die Gesamtzahl der Zeilen (und damit Spalten) dar, die von der Cursorabfrage abgerufen werden.
SELECT FOUND_ROWS() INTO num_rows;
4. Iterieren über die Spalten
Betreten Sie die Schleife mit der Anweisung SET i = 1, wobei i eine auf 1 initialisierte Iteratorvariable ist. Verwenden Sie innerhalb der Schleife die Anweisung FETCH col_names INTO col_name, um jeden Spaltennamen abzurufen sequentiell in die Variable col_name.
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;
5. Gespeicherte Prozeduren ausführen
Innerhalb der Schleife können Sie optional gespeicherte Prozeduren ausführen, indem Sie die Spaltennamen als Variablen verwenden. Die folgende Anweisung ruft beispielsweise eine gespeicherte Prozedur namens sp_my_proc auf und übergibt den Spaltennamen als Parameter:
CALL sp_my_proc(col_name);
6. Schließen des Cursors
Nach Abschluss der Schleife schließen Sie den Cursor mit der CLOSE-Anweisung, um alle zugehörigen Ressourcen freizugeben:
CLOSE col_names;
Das obige ist der detaillierte Inhalt vonWie iteriere ich MySQL-Spaltennamen mit Native SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!