すべての MySQL 列の動的連結
MySQL では、* ワイルドカードを使用したすべての列の連結はサポートされていません。代わりに、CONCAT() または GROUP_CONCAT() 関数で各列名を明示的に指定する必要があります。
明示的な列連結:
CONCAT() を使用できます。特定の列を連結する関数:
SELECT CONCAT(col1, col2, col3, ...)
FROM yourtable;
または、CONCAT_WS() を使用して、指定した区切り文字で列を連結し、NULL 値をスキップします:
SELECT CONCAT_WS(',', col1, col2, col3, ...)
FROM yourtable;
動的列連結:
手動で列名を指定することを避けるために、動的クエリを使用して、information_schema.columns テーブルからすべての列名を取得できます。
SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'yourtable';
次に、GROUP_CONCAT() を使用して次の列名を結合します。
GROUP_CONCAT(CONCAT('`', column_name, '`'))
これにより、
`col1`,`col2`,`col3`,`col4`,...
これにより、すべての列を連結する動的クエリを作成できます:
SET @sql = CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;'
);
最後に、動的クエリを実行します。
PREPARE stmt FROM @sql;
EXECUTE stmt;
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3