在MySQL 中檢索動態列名
在MySQL 中,當表結構未知或頻繁更改時,動態選擇列名就變得很有必要。本指南探討了一種有效完成此任務的方法。
使用準備好的語句和動態 SQL
要動態選取列名稱,我們可以利用準備好的語句和動態 SQL。這種技術允許我們根據運行時資訊建立 SQL 語句:
SELECT c.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.TABLE_NAME = 'table_name' AND c.COLUMN_NAME LIKE 'prefix%';
SET @query = CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM table_name;');
PREPARE stmt FROM @query;
EXECUTE stmt;
優點和注意事項
範例實作
提供的程式碼片段示範了動態列選擇process:CREATE TABLE atable ( prefix1 VARCHAR(10), prefix2 VARCHAR(10), notprefix3 INT, notprefix4 INT ); /* Insert sample data */ SELECT CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM atable;') INTO @query FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.TABLE_NAME = 'atable' AND c.COLUMN_NAME LIKE 'prefix%' ORDER BY c.ORDINAL_POSITION; PREPARE stmt FROM @query; EXECUTE stmt;此程式碼動態選擇並顯示atable表中名稱以「prefix」開頭的欄位。
以上是如何使用準備好的語句在 MySQL 中擷取動態列名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!