行内のすべてのフィールドを選択して連結するにはどうすればよいですか?
私はこれに似た何かをしたい:
SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name
..しかし、明らかに上記は機能しません。助言がありますか?
行内のすべてのフィールドを選択して連結するにはどうすればよいですか?
私はこれに似た何かをしたい:
SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name
..しかし、明らかに上記は機能しません。助言がありますか?
あなたは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
ストアド プロシージャを作成する場合は、上記の手順を組み合わせることができます
クエリを動的に作成します。つまり、すべての列をconcat(...)
明示的にリストします。クライアント側で 2 つのクエリを実行するか、プリペアド ステートメントを使用してストアド プロシージャでこれを行うことができます。