MySQL-行全体を連結を選択します
-
06-07-2019 - |
質問
行内のすべてのフィールドを選択して連結するにはどうすればよいですか
次のようなことをしたい:
SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name
..しかし、明らかに上記は機能しません。提案はありますか?
解決
クエリを動的に作成します。つまり、 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
ストアドプロシージャを作成する場合は、上記の手順を組み合わせることができます
所属していません StackOverflow