検索
ホームページデータベースmysql チュートリアルMySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)

以下のエディターは、記事 mysql 列を行に変換し、フィールドを結合する方法 (必読) を提供します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして一緒に見てみましょう

データテーブル:

MySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)

列切り替え: max(case when then)を使用します

max---集計関数を取得するには最大値

(case course when '中文' then得点 else 0 end) ---中国語としての判定

---列名としてのエイリアス

SELECT
 `name`,
 MAX(
  CASE 
  WHEN course='语文' THEN
   score
  END
 ) AS 语文,
 MAX(
  CASE 
  WHEN course='数学' THEN
   score
  END
 ) AS 数学, 
 MAX(
  CASE 
  WHEN course='英语' THEN
   score
  END
 ) AS 英语
FROM
 student
GROUP BY `name`
;

MySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)

マージフィールドの表示: use group_cancat(course,": "," スコア")

SELECT
 `name`,
 GROUP_CONCAT(course, ":", score) AS 成绩
FROM
 student
GROUP BY
 `name`;

MySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)

group_concat()、マニュアルには次のように記載されています: この関数は、グループの連結から非 NULL 値を持つ string 結果を返します。
比較的抽象的で理解しにくい。

簡単に理解すると、実際は次のようになります。 group_concat() は、どの行が同じグループに属するかを計算し、同じグループに属する列を表示します。どの列を返すかは、関数のパラメーター (つまり、フィールド名) によって決まります。グループ化には、group by で指定された列に基づいてグループ化するという基準が必要です。

group_concat 関数は内部で group by ステートメントを実行する必要があります。これは私の推測です。

1. テストステートメント:

SELECT
 GROUP_CONCAT(`name`)
FROM
 student
GROUP BY
 `name`;
結果は、名前が同じである値を見つけ、次のようにすべてをカンマで区切ってリストします。 group_concat('name')

2. テスト:MySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)

SELECT
 GROUP_CONCAT(`name`)
FROM
 student
;
結果:

group_concat('name')

group_concat は次の場合にのみ証明されますgroup by ステートメントを同時に使用すると効果的ですか? 実際のテストは以下で実行されます

MySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)

3. group_concat() に対する

constants

の構成の影響をテストします:

SET @@GROUP_CONCAT_MAX_LEN=4
マニュアルには設定の構文は次のとおりです:
SET [SESSION | GLOBAL] group_concat_max_len = val;

この 2 つの違いは何ですか?

SET @@global.GROUP_CONCAT_MAX_LEN=4;
global可以省略,那么就变成了:SET @@GROUP_CONCAT_MAX_LEN=4;
4. ステートメントを使用します

SELECT
GROUP_CONCAT(`name`)
FROM
student;
結果は次のようになります:
group_concat('name')

MySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)結論:

group_concat() 関数group by ステートメントと一緒に使用する必要があります併用すると必要な効果が得られます。

その理由は次のように理解できます: group_concat() はグループ x に属するすべてのメンバーを取得します (関数内の列パラメーターはどのフィールドを表示する必要があるかを指定します)。グループXはどこから来たのですか? 指定する group by がない場合、 group_concat() がどのグループに従ってメンバーを表示するかを知る方法はありません。 したがって、上記のようにgroup by句がない場合は、劉備、関羽、張飛、劉備、関羽、張飛、劉備、関羽、張飛が表示されます。

実際にこの機能を使用する必要があるのはどのような場合ですか?


クエリ
が必要な場合、結果は次のようになります: グループ名が左側に表示され、グループの下にあるすべてのメンバー情報が右側に表示されます。この機能を使うと色々なものを保存することができます。

また、次のように使用しても:

SELECT
 `name`,
 GROUP_CONCAT(course, ":", score) AS 成绩
FROM
 student
;
あまり意味がありません。列を指定する group_concat() が最良のケースです。複数の列が指定されている場合。

SELECT
 `name`,
 GROUP_CONCAT(course, ":", score) AS 成绩
FROM
 student
GROUP BY
 `name`;

すると、表示される結果は次のようになります:

group_concat(course,":",score)

以上がMySQLのカラムを行に変換してフィールドを結合する方法を詳しく解説(画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLはデータレプリケーションをどのように処理しますか?MySQLはデータレプリケーションをどのように処理しますか?Apr 28, 2025 am 12:25 AM

MySQLは、非同期、半同期、およびグループ複製の3つのモードを介してデータの複製を処理します。 1)非同期の複製パフォーマンスは高くなりますが、データが失われる可能性があります。 2)半同期複製により、データセキュリティが向上しますが、遅延が増加します。 3)グループレプリケーションは、高可用性要件に適したマルチマスターレプリケーションとフェールオーバーをサポートします。

説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?Apr 28, 2025 am 12:24 AM

説明ステートメントは、SQLクエリのパフォーマンスを分析および改善するために使用できます。 1.説明ステートメントを実行して、クエリプランを表示します。 2。出力結果を分析し、アクセスの種類、インデックスの使用量に注意し、順序を結合します。 3.分析結果に基づいてインデックスを作成または調整し、結合操作を最適化し、フルテーブルスキャンを回避してクエリ効率を向上させます。

MySQLデータベースをバックアップして復元するにはどうすればよいですか?MySQLデータベースをバックアップして復元するにはどうすればよいですか?Apr 28, 2025 am 12:23 AM

論理バックアップにMySQLDUMPとホットバックアップにMySQLenterPriseBackupを使用することは、MySQLデータベースをバックアップする効果的な方法です。 1. mysqldumpを使用してデータベースをバックアップします:mysqldump-uroot-pmydatabase> mydatabase_backup.sql。 2。ホットバックアップにmysqlenterprisebackupを使用:mysqlbackup - user = root-password = password - backup-dir =/path/to/backupbackup。回復するときは、対応する寿命を使用します

MySQLのスロークエリの一般的な原因は何ですか?MySQLのスロークエリの一般的な原因は何ですか?Apr 28, 2025 am 12:18 AM

MySQLのクエリが遅い主な理由には、インデックスの欠落または不適切な使用、クエリの複雑さ、過剰なデータボリューム、および不十分なハードウェアリソースが含まれます。最適化の提案には以下が含まれます。1。適切なインデックスを作成します。 2。クエリステートメントを最適化します。 3.テーブルパーティションテクノロジーを使用します。 4.適切にハードウェアをアップグレードします。

mysqlのビューは何ですか?mysqlのビューは何ですか?Apr 28, 2025 am 12:04 AM

MySQLビューは、SQLクエリの結果に基づいた仮想テーブルであり、データを保存しません。 1)ビューは複雑なクエリを簡素化し、2)データセキュリティを強化し、3)データの一貫性を維持します。ビューは、テーブルのように使用できるデータベースにクエリを保存しますが、データは動的に生成されます。

MySQLと他のSQL方言の構文の違いは何ですか?MySQLと他のSQL方言の構文の違いは何ですか?Apr 27, 2025 am 12:26 AM

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

MySQLパーティションは何ですか?MySQLパーティションは何ですか?Apr 27, 2025 am 12:23 AM

MySQLパーティション化により、パフォーマンスが向上し、メンテナンスが簡素化されます。 1)大きなテーブルを特定の基準(日付範囲など)、2)物理的に独立したファイルに物理的に分割する、3)MySQLはクエリするときに関連するパーティションに焦点を合わせることができます。

MySQLで特権をどのように許可して取り消しますか?MySQLで特権をどのように許可して取り消しますか?Apr 27, 2025 am 12:21 AM

mysqlで許可を許可および取り消す方法は? 1。grantallprivilegesondatabase_name.to'username'@'host 'などの許可を付与するために付与ステートメントを使用してください。 2。Revokeallprivilegesondatabase_name.from'username'@'host 'など、Revoke Statementを使用して、許可のタイムリーな通信を確保します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、