ホームページ > データベース > mysql チュートリアル > mysql での group_concat() 関数の使用方法のまとめ

mysql での group_concat() 関数の使用方法のまとめ

怪我咯
リリース: 2017-03-30 10:13:31
オリジナル
1591 人が閲覧しました


この記事の例では、mysql group_concat() 関数の使用方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

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

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

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

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

SELECT group_concat(town) FROM `players` group by town
ログイン後にコピー

結果は、次のように、town 内のどの値が同じかを検索し、カンマで区切ってリストします。

北京、北京

長沙


2. テスト:

SELECT group_concat( town )
FROM players
ログイン後にコピー

結果:

group_concat(town)

長沙、北京、北京、

上記は、group_concat が次の場所でのみ使用できることを証明できますか? group by ステートメントと同時に結果を生成できますか? 以下は実際のテストです


3. group_concat() の構成に対する
constants の影響をテストします。設定は次のとおりです:

SET @@GROUP_CONCAT_MAX_LEN=4
ログイン後にコピー
2 つのタイプの違いは何ですか?

SET [SESSION | GLOBAL] group_concat_max_len = val;
ログイン後にコピー

global は省略でき、その場合は次のようになります: SET @@GROUP_CONCAT_MAX_LEN=4;

4. ステートメント


SET @@global.GROUP_CONCAT_MAX_LEN=4;
ログイン後にコピー

を使用します。結果は次のようになります:


group_concat(town)

Changsha,Beijing,Changsha,Beijing

結論: 必要な効果を得るには、group_concat() 関数を group by ステートメントと一緒に使用する必要があります。



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

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

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

さらに、次のように使用すると: SELECT group_concat( name, sex ) FROM `players` town。それは意味がありません。 group_concat() で列を指定するのが最良のケースです。複数の列が指定されている場合。すると、表示される結果は次のようになります:

SELECT group_concat(town) FROM `players`
ログイン後にコピー

Wang Tao、Wang Xiaoming 男性、Liu Hui 女性、Shu Ming 女性


以上がmysql での group_concat() 関数の使用方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート