2009-10-25 79 views
2

如何選擇和連接一行中的每個字段?MySQL - 選擇一個整行的Concat

我想要做一些與此類似:

SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'tbl_name') 
as single FROM tbl_name 

..但顯然上述不起作用。有什麼建議麼?

+1

請注意,您需要選擇'where table_name ='tbl_name'和table_schema ='schema_name''。可能有多個名稱相同但表格不同的表格。 – 2009-10-25 22:03:49

回答

0

您將動態構建查詢,即明確列出concat(...)中的所有列。您可以通過運行兩個查詢或在存儲過程中使用準備好的語句在客戶端執行此操作。

0

你可以做到這一點在3個步驟:

1-構建字段列表

SELECT group_concat(column_name) as field_list 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'TABLE_NAME' 
GROUP BY table_name 
LIMIT 0 , 1 

2 - 複製FIELD_LIST字段的值

3-提取數據:

SELECT CONCAT("Paste value copied at previous step") 
FROM TABLE_NAME 

如果創建存儲過程,則可以將上述步驟組合起來