MySQL クエリ結果の行フィールドの結合は、次の 2 つの関数を使用して実装できます。 1. concat関数mysql> テストから concat('1','2','3') を選択します。 +---------------------+ | 連結('1','2','3') | +---------------------+ | 123 | +---------------------+ 接続文字列に NULL が含まれている場合、返される結果は NULL になります。 mysql> テストから concat('1','2',NULL,'3') を選択します。 +--------------------------+ | 連結('1','2',NULL,'3') | +--------------------------+ | NULL | +--------------------------+ 2. concat_ws関数concat(separator,str1,str2,...) はセパレータによる連結を表し、concat() の特殊な形式です。最初のパラメータは他のパラメータの区切り文字です。区切り文字は、連結される 2 つの文字列の間に配置されます。区切り文字には文字列または他のパラメータを使用できます。 mysql> テストから concat_ws(':','1','2','3') を選択します。 +----------------------------+ | 連結ws(':','1','2','3') | +----------------------------+ | 1:2:3 | +----------------------------+ 区切り文字が NULL の場合、戻り値は NULL になります。 mysql> テストから concat_ws(NULL,'1','2','3') を選択します。 +-----------------------------+ | 連結ws(NULL,'1','2','3') | +-----------------------------+ | NULL | +-----------------------------+ パラメータに NULL が含まれている場合は無視されます。 mysql> テストから concat_ws(':','1','2',NULL,NULL,NULL,'3') を選択します。 +------------------------------------------+ | 連結ws(':','1','2',NULL,NULL,NULL,'3') | +------------------------------------------+ | 1:2:3 | +------------------------------------------+ NULL を判断して他の値に置き換えることができます。 mysql> 銀行制限 1 から concat_ws(':','1','2',ifNULL(NULL,'0'),'3') を選択します。 +---------------------------------------------+ | concat_ws(':','1','2',ifNULL(NULL,'0'),'3') | +---------------------------------------------+ | 1:2:0:3 | +---------------------------------------------+ 補足:補足:MySQLでグループ化する場合、フィールドの値を連結する t_dog テーブル t_ワクチン表 t_dog_vaccine テーブル 問題の説明dog_vaccine 内の各犬に対応するワクチンを照会する必要があります。犬とワクチンの間には多対多の関係があるため、1 匹の犬が複数のワクチンに対応する可能性がありますが、文字列を使用してこれらの複数のワクチンを 1 つに連結し、Java エンティティ クラスにマップしたいと考えています。 段階的に解決する2 つの左結合クエリを使用して、3 つのテーブル t_dog、t_vaccine、t_dog_vaccine を関連付けました。 IDとしてdv.idを選択し、 d.dog_name を dogName、v.vaccine_name として から t_犬_ワクチン dv t_dog d を dv.dog_id = d.id に左結合します t_vaccine v を dv.vaccine_id = v.id に左結合します これは犬とワクチンが一致していますが、犬ごとに複数のレコードがあり、犬の名前と複数のvaccin_namesの値を文字列に結合したデータのみが必要です。考えてみたところ、ふとgroup byを思いつきました。 IDとしてdv.idを選択し、 d.dog_name を dogName、v.vaccine_name として から t_犬_ワクチン dv t_dog d を dv.dog_id = d.id に左結合します t_vaccine v を dv.vaccine_id = v.id に左結合します dogName でグループ化 group by を使用すると、当然期待した結果にはなりません。dogName は 1 つしかありませんが、それに対応するワクチンも 1 つしかありません。ワクチン名を複数にしたいのですが、どうすればよいでしょうか。 文字列連結を行える関数はありますか?うーん、わかりました、group_concat。 。 。 IDとしてdv.idを選択し、 d.dog_name を dogName として、 group_concat(v.vaccine_name) を dogVaccineName として から t_犬_ワクチン dv t_dog d を dv.dog_id = d.id に左結合します t_vaccine v を dv.vaccine_id = v.id に左結合します d.dog_name でグループ化 これにより、望んでいた効果が達成されました。 group_concat の使用法デフォルトの使用法 t_vaccine から dogVaccineName として group_concat(vaccine_name) を選択します。id は (t_dog_vaccine から vaccine_id を選択します。dog_id = 1) group_concat のデフォルトの区切り文字は ',' です。この区切り文字を変更したい場合は、変更できます。 REPLACE(group_concat(vaccine_name),',','変更したい区切り文字をここに入力してください') たとえば、デフォルトを次のように変更します。 t_vaccine から dogVaccineName として REPLACE(group_concat(vaccine_name),',',';') を選択します。ID は (t_dog_vaccine から vaccine_id を選択します。dog_id = 1) 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
実際のWebページ開発でも、アコーディオンは頻繁に登場します。簡単なアコーディオンを作ったのですが、...
最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...
導入通常、バックグラウンド サーバー プログラムには 1 つのプロセスのみが必要ですが、単一のプロセ...
目次1. Dockerをインストールする2. カスタムネットワークアドレスを作成する3. Docke...
入力ボックスには、コンテンツを入力するときに常に入力履歴が表示されます。これを無効にする現在の方法は...
多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...
正規表現は、特定のパターンに一致するテキストを検索および置換するためによく使用されます。たとえば、テ...
目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....
準備まず、nodejs をダウンロードする必要がありますが、これは問題ないはずです。原文はwebst...
クリップパスの使用ポリゴン値は複数の座標点で構成されます。最初の値は x 方向、2 番目の値は y ...
フロントエンドプロジェクトのパッケージ化.env.productionを見つけて、自分のIPまたはド...
1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...
<br />Web ページをデザインするときには、いつも不快なことに遭遇します。最も一般...
準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...
【1】<i></i>タグと<em></em>タグ同じ...