我想将select查询中的结果行转换为逗号分隔的字符串.我有一个表,其中有153列.选择查询如下所示
SELECT * FROM mytable where id = 3
Run Code Online (Sandbox Code Playgroud)
我希望以逗号分隔的字符串形式连续生成所有153列.MySql中有什么技巧吗?
你可以使用GROUP_CONCAT函数来做到这一点.
SELECT GROUP_CONCAT(col1, col2,..coln) FROM my_table;
Run Code Online (Sandbox Code Playgroud)
编辑:
获取具有以下查询的所有列名称以及CONCAT_WS函数::
SELECT GROUP_CONCAT(COLUMN_NAME)
FROM information_schema.COLUMNS
WHERE TABLE_NAME = 'my_table';
SELECT CONCAT_WS(',', col1, col2, ..., coln)
FROM my_table;
Run Code Online (Sandbox Code Playgroud)
或尝试:
SET @query1 = CONCAT('
SELECT CONCAT_WS(",", ',(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM information_schema.COLUMNS
WHERE TABLE_NAME = 'my_table'),')
FROM tablew_name'
);
PREPARE stmt FROM @query1; EXECUTE stmt; DEALLOCATE PREPARE stmt;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6069 次 |
| 最近记录: |