【问题标题】:MySQL - Select Concat an entire rowMySQL - 选择 Concat 整行
【发布时间】:2009-10-25 21:52:09
【问题描述】:

如何选择并连接一行中的每个字段?

我想做类似的事情:

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

..但显然以上不起作用。有什么建议吗?

【问题讨论】:

  • 请注意,您需要选择where table_name = 'tbl_name' and table_schema = 'schema_name'。可能有多个同名但在不同模式中的表。

标签: sql mysql group-concat concat


【解决方案1】:

您将动态构建查询,即明确列出concat(...) 中的所有列。您可以在客户端通过运行两个查询或使用准备好的语句在存储过程中执行此操作。

【讨论】:

    【解决方案2】:

    您可以分 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
    

    如果你创建一个存储过程,那么你可以结合上面的步骤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      相关资源
      最近更新 更多