2009-10-25 35 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 

如果创建存储过程,则可以将上述步骤组合起来