ホームページ >データベース >mysql チュートリアル >MySQL: concat と group_concat の使用方法の簡単な紹介
concat() 関数の機能: 複数の文字列を 1 つの文字列に連結します。構文: concat(str1, str2,...) は、接続パラメーターによって生成された文字列を返します。いずれかのパラメーターが null の場合、戻り値は null です。
group_concat は、グループ化後に複数行の値を 1 行に変換します。各行の元の値はカンマで区切られます
注:
この記事で使用される例はすべて、次のデータベース テーブル tt2 で実行されます。
1. concat() 関数
1. 複数の文字列を 1 つの文字列に連結します。
2. 構文: concat(str1, str2,...)
戻り値は、接続パラメーターによって生成された文字列です。いずれかのパラメーターが null の場合、戻り値は null です。
3. 例:
例 1: tt2 からの情報として concat (id、name、score) を選択します。
tt2 の行のスコア値が NULL であるため、中央に行があります。テーブルがヌルです。
例 2: 例 1 の結果では、id、name、score の 3 つのフィールドの組み合わせに区切り文字がありません。区切り文字としてカンマを追加できます。目〜〜
でも、SQL文を入力するのは大変です。 3つのフィールドにカンマを2回入力する必要があります。 10個のフィールドがある場合、9回も入力する必要があります。 ? ——そして、パラメータ間の区切り文字を指定できる concat_ws() の登場です! ! !
2. concat_ws() 関数1. 機能: concat() と同様に、複数の文字列を 1 つの文字列に連結しますが、区切り文字を一度に指定できます ~ (concat_ws は separator と連結します) 2. 構文: concat_ws(separator, str1, str2, ...)
例 4: 区切り文字を null として指定し、すべての結果Null になる:
3. group_concat() 関数
前書き: group by を使用したクエリ ステートメントでは、select で指定されたフィールドは、グループ化の基礎として group by ステートメントの後に含まれるか、または in に含まれます。集計関数。 (group by について詳しくは、「SQL での Group By の使用の簡単な分析」をクリックしてください)。
例 5:この例では、同じ名前を持つ人々の中で最小の ID をクエリします。同じ名前を持つすべての人の ID をクエリしたい場合はどうすればよいでしょうか?
もちろん、次のようにクエリすることもできます:
例 6:しかし、同じ名前が複数回出現する場合、それは非常に直感的ではないように思えます。各名前を 1 回だけ表示し、同じ名前を持つすべての人の ID も表示する、より直感的な方法はありますか? ——group_concat()を使用します
1. 機能: group by で生成された同じグループ内の値を結合し、文字列の結果を返します。
2. 構文: group_concat( [distinct] 接続するフィールド [並べ替えフィールド asc/desc ] [separator 'separator'] ) 注: 必要に応じて、重複する値を除外できます。値を並べ替えるには、order by 句を使用できます。区切り文字は文字列値であり、デフォルトはカンマです。 3. 例: 例 7: group_concat() と group by を使用して、同じ名前を持つ人の ID 番号を表示します:例 8: 上記の ID 番号を大きいものから小さいものへ並べ替えて、 '_ ' を区切り文字として使用します:
例 9: 上記のクエリは、名前ごとにグループ化された各グループのすべての ID を表示します。次に、名前でグループ化されたすべてのグループの ID とスコアをクエリする必要があります:
関連記事:
concat と concat_ws() および group_concat()、repeat() 文字列関数の違い
mysql GROUP_CONCAT と組み合わせた GROUP BY の使用
関連動画:
Apacheのインストールの紹介、MySQLのインストールと使い方の紹介
以上がMySQL: concat と group_concat の使用方法の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。