MySQL 中所有欄位的串連:替代方法
在 MySQL 中,使用 * 關鍵字串聯所有欄位是不可行的。要檢索跨所有列的串聯值字串,需要明確列名稱清單。
明確列清單:
最簡單的方法是手動連接各個欄位:
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
CONCAT_WS 函數:
CONCAT_WS 函數可用於連接列,同時跳過空值:
SELECT CONCAT_WS(',', col1, col2, col3, ....) FROM yourtable
動態查詢產生:
為了避免手動指定列名,可以建立動態查詢:
SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable';
此查詢檢索表中的所有列名。使用GROUP_CONCAT,這些名稱可以轉換為逗號分隔的字串:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
最後,可以組合這些元素來建立動態查詢:
SELECT CONCAT( 'SELECT CONCAT_WS(\'\',', GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name), ') AS all_columns FROM yourtable;') FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable' INTO @sql;
此查詢設定@sql 字串連接的列名稱。以下程式碼執行此查詢:
PREPARE stmt FROM @sql; EXECUTE stmt;
以上是如何連接 MySQL 中的所有欄位:探索替代方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!