動態連線所有 MySQL 欄位
在 MySQL 中,不支援使用 * 通配符連接所有欄位。相反,您需要在 CONCAT() 或 GROUP_CONCAT() 函數中明確指定每個列名稱。
明確列連接:
您可以使用CONCAT()函數連接特定欄位:
<code class="sql">SELECT CONCAT(col1, col2, col3, ...) FROM yourtable;</code>
或者,使用CONCAT_WS() 連接具有指定分隔符號的列,跳過空值:
<code class="sql">SELECT CONCAT_WS(',', col1, col2, col3, ...) FROM yourtable;</code>
動態列連線:
為了避免手動指定列名,可以使用動態查詢從information_schema .columns 表中檢索所有列名:
<code class="sql">SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema` = DATABASE() AND `table_name` = 'yourtable';</code>
然後,使用GROUP_CONCAT() 組合這些列名:
<code class="sql">GROUP_CONCAT(CONCAT('`', column_name, '`'))</code>
這將產生一個以逗號分隔的帶引號的列號名稱列表,例如:
<code class="sql">`col1`,`col2`,`col3`,`col4`,...</code>
使用此,您可以建立動態查詢來連接所有列:
<code class="sql">SET @sql = CONCAT( 'SELECT CONCAT_WS(\'\',', GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), ') AS all_columns FROM yourtable;' );</code>
最後執行動態查詢:
<code class="sql">PREPARE stmt FROM @sql; EXECUTE stmt;</code>
以上是如何動態連線所有 MySQL 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!