ホームページ  >  記事  >  データベース  >  MySQL: concat と group_concat の使用方法の簡単な紹介

MySQL: concat と group_concat の使用方法の簡単な紹介

php是最好的语言
php是最好的语言オリジナル
2018-07-26 16:57:212793ブラウズ

concat() 関数の機能: 複数の文字列を 1 つの文字列に連結します。構文: concat(str1, str2,...) は、接続パラメーターによって生成された文字列を返します。いずれかのパラメーターが null の場合、戻り値は null です。

group_concat は、グループ化後に複数行の値を 1 行に変換します。各行の元の値はカンマで区切られます

注:

この記事で使用される例はすべて、次のデータベース テーブル tt2 で実行されます。

MySQL: concat と group_concat の使用方法の簡単な紹介

1. concat() 関数

1. 複数の文字列を 1 つの文字列に連結します。

2. 構文: concat(str1, str2,...)

戻り値は、接続パラメーターによって生成された文字列です。いずれかのパラメーターが null の場合、戻り値は null です。

3. 例:

例 1: tt2 からの情報として concat (id、name、score) を選択します。

MySQL: concat と group_concat の使用方法の簡単な紹介

tt2 の行のスコア値が NULL であるため、中央に行があります。テーブルがヌルです。

例 2: 例 1 の結果では、id、name、score の 3 つのフィールドの組み合わせに区切り文字がありません。区切り文字としてカンマを追加できます。目〜〜

でも、SQL文を入力するのは大変です。 3つのフィールドにカンマを2回入力する必要があります。 10個のフィールドがある場合、9回も入力する必要があります。 ? ——そして、パラメータ間の区切り文字を指定できる concat_ws() の登場です! ! ! MySQL: concat と group_concat の使用方法の簡単な紹介

2. concat_ws() 関数

1. 機能: concat() と同様に、複数の文字列を 1 つの文字列に連結しますが、区切り文字を一度に指定できます ~ (concat_ws は separator と連結します) 2. 構文: concat_ws(separator, str1, str2, ...)

説明: 最初のパラメータはセパレータを指定します。区切り文字を null にすることはできません。null の場合、返される結果は null になることに注意してください。

3. 例:

例 3: concat_ws() を使用して区切り文字をカンマとして指定し、例 2 と同じ効果を実現します:

例 4: 区切り文字を null として指定し、すべての結果Null になる:

MySQL: concat と group_concat の使用方法の簡単な紹介

3. group_concat() 関数

前書き: group by を使用したクエリ ステートメントでは、select で指定されたフィールドは、グループ化の基礎として group by ステートメントの後に含まれるか、または in に含まれます。集計関数。 (group by について詳しくは、「SQL での Group By の使用の簡単な分析」をクリックしてください)。 MySQL: concat と group_concat の使用方法の簡単な紹介

例 5:

この例では、同じ名前を持つ人々の中で最小の ID をクエリします。同じ名前を持つすべての人の ID をクエリしたい場合はどうすればよいでしょうか?

もちろん、次のようにクエリすることもできます: MySQL: concat と group_concat の使用方法の簡単な紹介

例 6:

しかし、同じ名前が複数回出現する場合、それは非常に直感的ではないように思えます。各名前を 1 回だけ表示し、同じ名前を持つすべての人の ID も表示する、より直感的な方法はありますか? ——group_concat()を使用します

1. 機能: group by で生成された同じグループ内の値を結合し、文字列の結果を返します。 MySQL: concat と group_concat の使用方法の簡単な紹介

2. 構文: group_concat( [distinct] 接続するフィールド [並べ替えフィールド asc/desc ] [separator 'separator'] )

注: 必要に応じて、重複する値を除外できます。値を並べ替えるには、order by 句を使用できます。区切り文字は文字列値であり、デフォルトはカンマです。

3. 例:

例 7: group_concat() と group by を使用して、同じ名前を持つ人の ID 番号を表示します:

例 8: 上記の ID 番号を大きいものから小さいものへ並べ替えて、 '_ ' を区切り文字として使用します:

MySQL: concat と group_concat の使用方法の簡単な紹介

例 9: 上記のクエリは、名前ごとにグループ化された各グループのすべての ID を表示します。次に、名前でグループ化されたすべてのグループの ID とスコアをクエリする必要があります:

MySQL: concat と group_concat の使用方法の簡単な紹介

関連記事:

1MySQL: concat と group_concat の使用方法の簡単な紹介 concat と concat_ws() および group_concat()、repeat() 文字列関数の違い

mysql GROUP_CONCAT と組み合わせた GROUP BY の使用

関連動画:

Apacheのインストールの紹介、MySQLのインストールと使い方の紹介

以上がMySQL: concat と group_concat の使用方法の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。