MySQL ですべての列を連結する方法: 代替アプローチを検討していますか?

Barbara Streisand
リリース: 2024-10-24 19:06:02
オリジナル
269 人が閲覧しました

How to Concatenate All Columns in MySQL: Exploring Alternative Approaches?

MySQL でのすべてのカラムの連結: 代替アプローチ

MySQL では、* キーワードを使用してすべてのカラムを連結することは実現できません。すべての列の連結された値の文字列を取得するには、列名の明示的なリストが必要です。

明示的な列リスト:

最も簡単な方法は、個々の列を手動で連結することです。列:

SELECT CONCAT(col1, col2, col3, ....)
FROM yourtable
ログイン後にコピー

CONCAT_WS 関数:

CONCAT_WS 関数を使用すると、NULL 値をスキップしながら列を連結できます:

SELECT CONCAT_WS(',', col1, col2, col3, ....)
FROM yourtable
ログイン後にコピー

動的クエリの生成:

手動で列名を指定することを避けるために、動的クエリを作成できます:

SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable';
ログイン後にコピー

このクエリはテーブル内のすべての列名を取得します。 GROUP_CONCAT を使用すると、これらの名前をカンマ区切りの文字列に変換できます。

GROUP_CONCAT(CONCAT('`', column_name, '`'))
ログイン後にコピー

最後に、これらの要素を組み合わせて動的クエリを作成できます。

SELECT
CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;')
FROM `information_schema`.`columns`
WHERE `table_schema`=DATABASE()
AND `table_name`='yourtable'
INTO @sql;
ログイン後にコピー

このクエリは、 @sql 文字列を連結された列名に付加します。次のコードはこのクエリを実行します:

PREPARE stmt FROM @sql;
EXECUTE stmt;
ログイン後にコピー

以上がMySQL ですべての列を連結する方法: 代替アプローチを検討していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!