如何有效連接 MySQL 欄位
使用 * 關鍵字連接 MySQL 中的所有欄位是不可行的。相反,您需要明確列出要組合的所有列。
明確列串聯
要實現此目的,請使用CONCAT 函數:
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
或者,您可以利用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;
此查詢產生類似於以下內容的字串:
SELECT CONCAT_WS('', col1, col2, col3, ....) AS all_columns FROM yourtable
使用以下命令執行此字串:
PREPARE stmt FROM @sql; EXECUTE stmt;
這種方法無需手動列出列,從而確保動態且可擴展的串聯。
以上是如何連接 MySQL 列而不列出所有列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!