[英]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.