「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > すべての MySQL 列を動的に連結するにはどうすればよいですか?

すべての MySQL 列を動的に連結するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:234

How to Dynamically Concatenate All MySQL Columns?

すべての 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;
リリースステートメント この記事は次の場所に転載されています: 1729757658 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3