前回の記事では、クロステーブル更新について書きました。自分が書いた SQL を見たとき、自分がバカみたいに感じて、クロステーブル更新について書きました。あっという間に1年が経ち、記事の後半で加わった2人の従業員 新たな要求が静かにやって来ます! ! ! リーダーは、各パフォーマンスの対象者が誰であるかを確認したいと考えており、同時に、これらの人の名前をコンマで区切った文字列に連結して、次の結果を得ることを要求しています。 結果セット内の指定された列の文字列を連結するにはどうすればよいですか?主人公が光り輝く✨ GROUP_CONCAT(式) 公式の MySQL ドキュメントでは、この関数は集計関数のセクションに配置されています。指定したフィールドでグループ化して連結する場合は、キーワード 意味 この関数は GROUP_CONCAT([DISTINCT] 式 [,式 ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,列名 ...]] [セパレーター str_val]) 何ですか?この構文は複雑すぎます。心配しないでください。例を使って一つずつ説明し、検証していきます。 ユースケース まず、記事の冒頭にある要件を完了してください。 SELECT パフォーマンス、GROUP_CONCAT(従業員名) AS 従業員 従業員から GROUP BY パフォーマンス; 結果はZouです: この時点で、リーダーから与えられた要件は完了しました😜 お客様、そのままお待ちください。ご注文いただいた料理はまだ出ておりません。 私たちは国際的なチームであり、私たちの故郷は世界中にあります リーダーは従業員のことを気にかけたいと考えており、会社内のすべての従業員の出身地を確認したいと考えています。従業員は同じ場所から来る可能性があるので、結果セットから重複を削除するには、 GROUP_CONCAT(DISTINCT home_town) を選択 従業員から; 結果を見てみましょう: リーダーの気遣いはどこにでもあります... コピーライティングを変える必要があります。リーダーの気遣いは SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC) AS 'リーダーシップケアエリア' 従業員から; -- 私のように変数を使う人は誰もいませんし、中国語です。あなたは頭がおかしいと思います。 ここで、 グループ化された値間のデフォルトの区切り文字はカンマ (,) です。区切り文字を明示的に指定するには、 SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC SEPARATOR '!') AS 'リーダーシップケア地域' 従業員から; SELECT GROUP_CONCAT(DISTINCT home_town SEPARATOR '') AS 'リーダーシップ ケア エリア' 従業員から; これはかなり思いやりのあることですよね?よく考えてみてください! ! ! リーダーのケア能力にも制限があります。連結された文字列のデフォルトの最大長は 1024 文字です。現在の制限は、次のステートメントで確認できます。 'group_concat_max_len' のような変数を表示します。 リーダーの能力は変動しやすいため、この値は柔軟に設定できます。 [グローバル | セッション] group_concat_max_len = val を設定します。 セッション: 現在のセッションで有効 グローバル: グローバルに有効 このステートメントが実行されると、MySQL が再起動されるまで有効になります。MySQL が再起動されると、デフォルト値が復元されます。 場合によっては、 消費者の名と姓をコンマで区切り、さらに ; で区切ります 選択 GROUP_CONCAT( CONCAT_WS(', ', 連絡先の姓、連絡先の名) セパレータ ';') から 顧客; CONCAT_WS() 関数の使い方は次のとおりです。非常に簡単なので、ぜひご自身で確認してください... 注意⚠️ GROUP_CONCAT() 関数は、値のリストではなく、単一の文字列を返します。つまり、GROUP_CONCAT() 関数の結果を IN 演算子、たとえば次のようにサブクエリで使用することはできません。 選択 ID、名前 から テーブル名 どこ GROUP_CONCAT(id)内のid; 要約する 多くの場合、GROUP_CONCAT() 関数を使用して有用な結果を生成できます。また、他の関数と組み合わせてさらに強力な機能を実現することもできます。 以下もご興味があるかもしれません:
|
<<: Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します
>>: Ubuntu 20.04 と NVIDIA ドライバーのインストールに関するチュートリアル
ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...
序文最近、弊社では mbp の設定をしており、ssh を使うことが多くなりました。複雑なコマンドを書...
以下の操作デモンストレーションはすべて MySQL バージョン 5.6.36 に基づいています。仕事...
この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...
最近、NestJs フレームワークを学び始めました。学習コストは他のフレームワークよりもはるかに高く...
今日、VMware を使用してマシンに新しい仮想マシンをインストールしていたところ、次のように「この...
説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...
この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...
テキストシャドウ text-shadow プロパティの効果: 1. 右下隅の影、左下隅の影、左上隅の...
例: <html> <ヘッド> <スタイル タイプ="tex...
目次必要回避策1. ツールチップを設定する2. hookToolTip変数を定義する3. メソッド内...
目次序文主な実装コードHTMLコードJSコード序文南の友達の多くは、雪をほとんど見たことがない、ある...
mysql-connector-java.jar パッケージのチュートリアルをダウンロードします: ...
一部の MySQL テーブルには重複レコードが含まれている場合があります。重複データが存在することを...
ニーズの発見領域の一部のみスクロールでき、残りの部分は移動できない場合、どのような方法を使用しますか...