グループフィールドを 1 行に書き込むための mysql group_concat メソッドの例

グループフィールドを 1 行に書き込むための mysql group_concat メソッドの例

この記事では、MySQL group_concat を使用してグループ化されたフィールドを 1 つの行に書き込む方法を例を使って説明します。ご参考までに、詳細は以下の通りです。

機能: group by によって生成された同じグループ内の値を結合し、文字列の結果を返します。

関数構文:

group_concat( [DISTINCT] 接続するフィールド [Order BY フィールドのソート ASC/DESC] [Separator 'Separator'] )

記事リストをクエリし、同じ記事の複数のタグを1つのフィールドとして使用します。

タグテーブル構造

テーブル `book_tag` を作成します (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `tag_name` varchar(255) NOT NULL DEFAULT '0' COMMENT 'タグ名',
 `tag_nums` int(10) NOT NULL DEFAULT '0' COMMENT '参照数',
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8;

タグ記事関係表

テーブル `book_tag_book` を作成します (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `book_id` int(10) NOT NULL DEFAULT '0' COMMENT '書籍ID',
 `tag_id` int(10) NOT NULL DEFAULT '0' COMMENT 'タグID',
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8;

クエリ

選択
 `b`.`id`、
 `b`.`書籍名`,
 `b`.`book_flash`、
 `b`.`はじめに`,
 GROUP_CONCAT(a.タグ名)
から
 `book_book` `b`
`book_tag_book` `t` を `t`.`book_id` = `b`.`id` に左結合します
`book_tag` `a` を `a`.`id` = `t`.`tag_id` に左結合します
GROUP BY b.id

結果

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLはgroup_concat()関数に基づいて複数のデータ行を結合します
  • MySql Group Byは複数のフィールドのグループ化を実装します
  • 複数のフィールドをグループ化するMySQLグループ
  • MySQL でグループ化した後、フィールドの複数のデータを結合して表示する方法

<<:  Vue-cliフレームワークはタイマーアプリケーションを実装します

>>:  Centos7 FFmpeg オーディオ/ビデオ ツールのインストールに関する簡単なドキュメント

推薦する

Ubuntu で時刻同期に NTP を使用する

NTP は、ネットワーク上で時間を同期するための TCP/IP プロトコルです。通常、クライアントは...

Linux で open-vswitch をインストールおよびアンインストールする方法

1. ソースコードからovsをコンパイルしてインストールします。依存関係をインストールします: # ...

MySQL での正規表現の使用に関する詳細

目次1. はじめに2. 製品テーブルを準備する2.1 ステートメントの順序2.2 大文字と小文字の区...

MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明

ストアド関数ストアド関数とは: SQL コードの一部をカプセル化し、特定の関数を完了して、結果を返し...

Hadoopカウンターとデータクリーニングの適用

データクリーニング (ETL)コアビジネスの MapReduce プログラムを実行する前に、まずデー...

アイデアコンパイラvueインデントエラー問題シナリオの分析

プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...

データ型の判断における js typeof と instanceof の違いと、その開発と使用について

目次1. typeof演算子2. インスタンスオブ演算子3. typeof と instanceof...

Vuexはセッションストレージデータを結合して、ページを更新するときにデータが失われる問題を解決します

目次序文1. 理由: 2. 解決策のアイデア: 1. ローカル保存方法: 2. 実装手順: 3. 最...

Dockerのデフォルトネットワークセグメントの正しい変更手順

背景同僚がセキュリティ プロジェクトに取り組んでおり、AWS サーバーに秘密兵器を展開する必要があり...

CSSトランジションは高さを変更することで要素を拡大したり縮小したりします。

一般的な開発ニーズとして、要素の一部を必要になるまで折りたたんでおきたいことが挙げられます。 Boo...

Windows で MySQL インストーラーを使用して MySQL サービスをインストールするチュートリアル図

MYSQL は、MYSQL サービスやその他のコンポーネントをインストールするためのインストーラ方式...

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

MySQL 5.7 解凍版のインストール、アンインストール、および文字化けしたコードの問題のグラフィック解決

1. 解凍版のインストール(1)圧縮パッケージをダウンロードし、ディスクの場所に解凍します。圧縮パッ...

IE6 スペースバグ修正方法

コードを見てみましょう:コードをコピーコードは次のとおりです。 < !DOCTYPE html...

フォーム送信ページの更新がジャンプしない

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...