簡體   English   中英

在MySql中將結果行從查詢轉換為逗號分隔的字符串

[英]In MySql convert resulted row from query to comma-separated string

我想將select查詢中的結果行轉換為逗號分隔的字符串。 我有一個表,其中有153列。 選擇查詢如下所示

SELECT * FROM mytable where id = 3

我希望以逗號分隔的字符串形式連續生成所有153列。 MySql中有什么技巧嗎?

您可以使用GROUP_CONCAT函數來執行此操作。

SELECT GROUP_CONCAT(col1, col2,..coln) FROM my_table;

編輯:

獲取具有以下查詢的所有列名稱以及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;

或嘗試:

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;

您可以使用concat()函數,但據我所知,您需要為每列命名。

select concat(col1, ',', col2, ',', col3) from myTable where id=3

我知道獲取表的所有列的唯一方法是SHOW COLUMNS FROM table ,我想你可以將這些結果包含在你的查詢中,但這不是我以前做過的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM