MySQL で単一のフィールド内の複数の値を分割および結合する方法

MySQL で単一のフィールド内の複数の値を分割および結合する方法

複数の値を組み合わせて表示

これで、図1から図2に示す要件が揃いました。

図1

図2

どうやってやるんですか?

次のSQL:

SELECT id,GROUP_CONCAT(DISTINCT str) as str from test GROUP BY id

関連する知識ポイント

グループ連結

GROUP_CONCAT([DISTINCT] 接続するフィールド [ASC/DESCソートフィールドによる順序] [区切り文字 'separator'])

複数値の分割表示

ここでの要件は最初の例とは逆になります。

図3より

図3

図4へ

図4

これは少し複雑です。まず、図に示すように、str の処理、つまり文字 + ',' の 1 対 1 の処理を​​事前に行っています。次に、MySQL にはシーケンス機能がないため、シーケンス テーブルを事前に用意する必要があります。最大 id は、単一フィールドの最大項目数よりも大きくする必要があります。

配列表

具体的なSQLは次のとおりです。

t.id、SUBSTRING_INDEX(SUBSTRING_INDEX(str、'、'、s.id)、'、'、-1) を str として選択します。 
	test2 tから 
		シーケンス s を s.id<(LENGTH(t.str)/2+1) に結合します。 
			t.idで注文

関連する知識ポイント

SUBSTRING_INDEX(文字列、区切り文字、カウント)

SUBSTRING_INDEX(処理する文字列、区切り文字、カウント)

count が正の数の場合、左から右に数えて N 番目の区切り文字の左側にあるすべてのコンテンツになります。

負の数の場合は、右から始まり、N 番目の区切り文字の右側にあるすべての内容がカウントされます。

要約する

これで、MySQL の単一フィールドの複数値の分割と結合処理に関するこの記事は終了です。MySQL の単一フィールドの複数値の分割と結合に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLクエリ時にフィールドにデフォルト値を割り当てる方法
  • MySQL コマンドラインでテーブルにフィールドを追加します (フィールド名、空かどうか、デフォルト値)
  • MySQL テーブル フィールドのデフォルト値の設定 (グラフィック チュートリアルと詳細に注意)
  • MySQL で複数のフィールドを連結する詳細な例
  • MySQL 8.0の新機能、隠しフィールドの詳細な説明
  • MySQLのどのフィールドがインデックスに適しているかについての簡単な説明
  • mysql 更新ケース更新フィールド値が固定されていない操作
  • MySQLでレコードを変更する場合、更新操作フィールド = フィールド + 文字列
  • 複数のフィールドを変更するためのMysql更新の構文の詳細な分析
  • MySQLフィールドのデフォルト値を設定する方法

<<:  HTML テーブルタグチュートリアル (44): テーブルヘッダータグ

>>:  VUE ユニアプリライフサイクルに関する簡単な説明

推薦する

HTML で JavaScript の全選択/全選択解除操作を実行するサンプル コード

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

MySQL デッドロック ルーチン: 一意のインデックスの下でのバッチ挿入順序の不一致

序文デッドロックの本質はリソースの競合です。バッチ挿入の順序が一貫していないと、デッドロックに陥りや...

Vue3 のウォッチの使用方法とベストプラクティスガイド

目次序文🌟 1. APIの紹介2. 複数のデータソースの監視3. リスニングアレイ4. 監視対象5....

CentOS7でMySQL 5.7をアンインストールする方法

MySQLに何がインストールされているか確認する rpm -qa | grep -i mysql n...

vue-element-admin グローバル読み込み待機中

最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...

MySQL フェイルオーバー ノート: アプリケーション対応設計の詳細な説明

1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...

Linux trコマンドの使い方

01. コマンドの概要tr コマンドは、標準入力からの文字を置換、圧縮、削除できます。ある文字セット...

Nginxドメイン名転送の実装

Nginx の紹介Nginx (「エンジン x」) は、ロシアのプログラマー Igor Sysoev...

jQuery はパーセンテージスコアリングの進捗バーを実装します

この記事では、パーセンテージスコアリングプログレスバーを実現するためのjQueryの具体的なコードを...

HTML入力ファイルコントロールはアップロードされるファイルの種類を制限します

入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...

nginx「504 ゲートウェイタイムアウト」エラーを解決する

ウェブサイトを作成する学生は、アクセス時に一部の nginx サーバーが 504 Gateway T...

バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法

序文最近、私の住居の電力事情が不安定で、突然の停電が頻繁に起こります。ノートパソコンを持っているので...

nginx のロケーションと書き換えの使用法の詳細な説明

1. 位置情報の利用状況の概要ロケーションは、さまざまな処理方法に対してさまざまな種類のリクエストを...

MySQL でテーブル メタデータ ロックを待機する理由と方法

MySQL が alter table などの DDL 操作を実行すると、テーブル メタデータ ロッ...

MySQLは遅いSQLを開始し、原因を分析します

ステップ1. MySQLスロークエリを有効にする方法1: 設定ファイルを変更するWindows: W...