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 イベントの詳細な説明

推薦する

Win10 + Ubuntu 16.04 デュアルシステム 完璧なインストールチュートリアル [詳細]

必ずデータをバックアップすることを忘れないでください。データは貴重なものです! ! !コンピュータモ...

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

一般的なDocker Composeコマンドの詳細な説明

1. Docker Compose の使用方法は docker コマンドの使用方法と非常に似ています...

HTML 代替カラーコードを実現する n 通りの方法 サンプルコード

この記事では、主に HTML のサンプル コードを紹介し、次のように交互に色を変更する方法を共有しま...

CSSレコードテキストアイコン配置のいくつかのソリューション

開発中に画像とテキストが 1 行に表示されることはよくあります。2 つのインライン要素を揃えるのは通...

MySQL でテーブルデータをクリアする 2 つの方法とその違い

MySQL でデータを削除するには 2 つの方法があります。切り詰めは大まかな伐採の一種である削除は...

Vue.jsのレンダリング関数の使い方の詳しい説明

Vue では、ほとんどの場合、テンプレートを使用して HTML を作成することを推奨しています。ただ...

jQuery を使用してカルーセル効果を実装する

本日ご紹介するのは、jQuery を使用してシンプルなカルーセルを実装する方法です。実装の原則は次の...

Vue の img の src 画像アドレスの動的スプライシングの問題について

Vue での img の動的スプライシングを見てみましょう。src 画像アドレス、具体的な内容は次の...

MySQL データ型 DECIMAL の使用方法の詳細な説明

MySQL DECIMALデータ型は、データベースに正確な数値を保存するために使用されます。会計シス...

Linux centos7 環境での MySQL インストール チュートリアル

Linux centos7 環境に MySQL をインストールする手順の詳細な紹介MySQLをインス...

VUE 応答性原理の詳細な説明

目次1. 応答原理の基盤2. コアオブジェクト: Dep と Watcher 3. 依存関係を収集し...

CSS でのフィルタープロパティの使用に関する詳細な説明

フィルター属性は要素の視覚効果を定義しますぼかし画像にガウスぼかしを適用します。 「半径」の値は、ガ...

Python 仮想環境のインストールとアンインストールの方法と発生する問題

Ubuntu16.04 のインストールとアンインストール pip実験環境Ubuntu 16.04; ...

カルーセル効果を作成するためのjs

カルーセルはフロントエンド開発において比較的重要なポイントだと思います。ネイティブjsの知識ポイント...