mysqlはコンマに基づいてデータ行を複数の行に分割します

mysqlはコンマに基づいてデータ行を複数の行に分割します

分離効果

-- 別居前
1,2,3,4
-- 別居後
1
2
3
4

コマンドラインを分ける

選択 
 substring_index(substring_index('1,2,3,4',',', b.help_topic_id + 1), ',', -1) 結果
から 
 mysql.help_topic b
どこ 
 b.help_topic_id < (LENGTH('1,2,3,4') - LENGTH(REPLACE('1,2,3,4', ',', '')) + 1);

コマンドラインの説明

help_topic自体はMysqlヘルプ説明コメントテーブルで、Mysqlのさまざまな用語を説明するために使用されます。このテーブルのデータIDは0から増加するため、カウントするのに便利ですが、8.0.17バージョンには686のデータしかありません。この数を超える場合は、テーブルをカスタマイズする必要があります。

カウント用の一時テーブルとして使用できます。クエリ ステートメントは、カウントに help_topic のみを使用します。余分な部分は実際にはダーティ データです。

b.help_topic_id < 分離後の行の合計数を取得する

b.help_topic_id < (LENGTH('1,2,3,4') - LENGTH(REPLACE('1,2,3,4', ',', '')) + 1)

この文は実際にはトラバーサルであり、help_topic_idは0から始まり、

順番にインターセプトし、まずn番目の区切り文字の前のすべての文字をインターセプトし、次に文字列の最後の文字をインターセプトします。

1 —— 1
1,2 —— 2
1、2、3 —— 3
1、2、3、4 —— 4

mysql.help_topic 権限なしの解決策

mysql.help_topic の機能は、SUBSTRING_INDEX 関数のデータ (つまり、区切り文字で区切られたデータ) を結合して、直積を作成することです。

mysql.help_topic を使用する権限がない場合は、クエリを実行するテーブルに接続するための一時テーブルを作成できます。

フィールドを分割できる文字列の最大数を取得します。

SELECT MAX(LENGTH(a.`name`) - LENGTH(REPLACE(a.`name`, ',', '' )) + 1) FROM `test` a;

一時テーブルを作成し、そこにデータを追加します。

知らせ:

  • 一時テーブルには、0または1から始まる自動増分データの列が必要です。
  • 一時テーブル名は任意であり、フィールドは1つだけ存在できます。
  • 一時的に表現されるデータの量は、MAX(LENGTH(a.name) - LENGTH(REPLACE(a.name, ',', '' )) + 1) より大きくなければなりません。

関与する機能

部分文字列インデックス(文字列、区切り、カウント)

パラメータ名説明する
str分割する文字列
デリム区切り文字、文字で区切る
カウントcount が正の数の場合、n 番目の区切り文字の前のすべての文字が取得されます。count が負の数の場合、末尾から n 番目の区切り文字の後のすべての文字が取得されます。

置換(文字列、元の文字列、置換後の文字列)

パラメータ名説明する
str置換する文字列
文字列から置換する文字列
文字列置換する文字列

length(str) 文字列の長さを取得する

これで、MySQL でカンマに基づいて 1 行のデータを複数の行に分割する方法に関するこの記事は終了です。MySQL でカンマに基づいて 1 行のデータを複数の行に分割する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL 文字列分割の例 (区切り文字なしの文字列抽出)
  • MySQL 文字列分割操作 (区切り文字を含む文字列のインターセプション)
  • MySQL テーブルの垂直分割と水平分割
  • MySQL の指定文字によるマージと分割の例のチュートリアル
  • MySQL インターセプションと文字列分割関数の使用例
  • MYSQL データベースのデータ分割の概要: サブライブラリとサブテーブル
  • MySQLの一般的なデータ分割方法
  • Perlを使用してデータテーブル(MySQL)を分割し、データインスタンスを移行する

<<:  ベンダー プレフィックス: ブラウザ エンジン プレフィックスが必要なのはなぜですか?

>>:  HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

推薦する

ファイル共有サーバーを構築するための samba + OPENldap の詳細な説明

ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...

Nginx 設定ファイルの詳細な説明と最適化の提案ガイド

目次1. 概要2. nginx.conf 1) 設定ファイルの場所2) ワーカープロセス3) イベン...

ウェブデザインにおけるテキスト入力ボックスのパラメータの説明

<br />一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われていま...

nginx でネストされた if メソッドを実装する方法

Nginx はネストされた if ステートメントをサポートしておらず、if ステートメントでの論理判...

INS と DEL を使用してドキュメントの変更をマークする方法の詳細な説明

ins と del は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、...

Ubuntu で中国語入力方法が使えない場合の解決策

Ubuntu では中国語入力方法の解決策はありません。仮想マシンや Ubuntu システムをインスト...

CentOS7 64でのMySQL5.6.40の詳細なインストール手順

CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...

Vue パッケージ化後の空白ページの解決策

1. vue-cli がプロジェクト パッケージを作成した後にページが空白になる問題の解決方法コマン...

Linux でファイルの作成時間を取得する方法と実践的なチュートリアル

背景ファイルの作成時刻を取得する必要がある場合があります。例えば: 「xtrabackup スキーマ...

ウェブページヘッダーの最適化の提案

ロゴの最適化: 1.ロゴ画像はできるだけ小さくしてください。 2. 一般的には背景として配置されます...

Docker クロスサーバー通信オーバーレイソリューション (パート 1) Consul 単一インスタンス

目次シナリオタスクアイデア分析するコンセプトと選択ちょっとしたテスト環境説明予防実践テスト引用シナリ...

Windows での MySQL 8.X インストール チュートリアル

以前は MySQL 5.7 を使用していましたが、MySQL にいくつか新しい機能が追加されたため、...

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

MySQL 8.0.13 のインストールと設定方法を皆さんと共有したいと思います。お役に立てれば幸...

Linux で ping は成功するがポートが利用できない問題を解決する方法

ping は成功したがポートにアクセスできない場合のポート可用性検出の説明ポート可用性検出ツールの紹...

Nginx の場所と proxy_pass パスの設定の問題の概要

目次1. Nginxロケーションの基本設定1.1 Nginx 設定ファイル1.2 Pythonスクリ...