要使用SQL 擷取與迭代MySQL 表中的欄位名稱,請考慮採用下列方法:
1。檢索欄位名稱
利用 SHOW COLUMNS FROM [table_name] 語句檢索指定表中所有欄位名稱的清單。此命令產生一個結果集,其中每行代表一列,並包含列名稱等元資料。
SHOW COLUMNS FROM table_name;
2.建立遊標
要啟用列名稱的迭代處理,請使用 DECLARE col_names CURSOR FOR 語法建立遊標,其中 col_names 表示遊標的名稱。在遊標定義中,指定一個查詢來擷取列名稱,並確保它們按序號位置排序。
DECLARE col_names CURSOR FOR SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'table_name' ORDER BY ordinal_position;
3.確定列數
為了便於循環控制,請執行 FOUND_ROWS() 函數並將結果儲存在變數 num_rows 中。該值表示遊標查詢檢索到的總行數(以及列數)。
SELECT FOUND_ROWS() INTO num_rows;
4。迭代列
使用 SET i = 1 語句進入循環,其中 i 是初始化為 1 的迭代器變數。在迴圈內,使用 FETCH col_names INTO col_name 語句檢索每個欄位名稱依序放入 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.執行預存程序
在迴圈內,您可以選擇使用列名作為變數來執行預存程序。例如,以下語句呼叫名為sp_my_proc 的預存過程,並將col_name 作為參數傳遞:
CALL sp_my_proc(col_name);
6.關閉遊標
完成循環後,使用CLOSE語句關閉遊標以釋放任何關聯資源:
CLOSE col_names;
以上是如何使用本機 SQL 迭代 MySQL 列名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!