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

推薦する

MYSQL8.0.13 無料インストール版 設定チュートリアル例 詳細説明

1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...

js を使用して年カルーセル選択効果をネイティブに実装する例

序文js を使用して、年の回転選択効果を実現します。では早速、写真を見てみましょう。 1. アイデア...

Nginx リバース プロキシを使用して go-fastdfs を実行する例

背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...

Ubuntu 20.04でAliソースを変更する方法

なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...

DockerでHadoopを実行しイメージを作成する方法

車輪の再発明として、ここでは再パッケージ化を使用して Docker ベースの Hadoop イメージ...

HTML H タイトルタグの使用

H タグ、特に h1 タグの使用は常に議論の的となっている問題であり、私たちが研究する価値のある問題...

計算プロパティとリスナーの詳細

目次1. 計算されたプロパティ1.1 基本的な例1.2 計算プロパティキャッシュとメソッド1.3 計...

シンプルなスネークを実現するためのネイティブjsキャンバス

この記事では、参考までに、簡単なスネークゲームを実装するためのjsキャンバスの具体的なコードを共有し...

フックを使用して React コンポーネントを書くときに注意すべき 5 つの点

目次01. レンダリングが不要な場合はuseStateを使用する02. リンクの代わりにrouter...

Ubuntu 向け VMware Tools のインストールと構成のチュートリアル

以前、ブロガーは VMware 仮想マシンに Ubuntu システムをインストールしました。まだイン...

MySQL 更新セットとの違い

目次問題の説明原因分析解決問題の説明最近、奇妙な問い合わせを受けました。更新ステートメントはエラーな...

デザイン理論:計画、リソース、コミュニケーションの問題について

<br />多くの中小企業ではこの問題は発生しません。中小企業はデザイナーをサポートし、...

私の CSS フレームワーク - base.css (ブラウザのデフォルト スタイルをリセット)

コードをコピーコードは次のとおりです。 @文字セット "utf-8"; /* @...

VueのVuexの4つの補助機能について

目次1. 補助機能2. 例1. mapState と mapGetters 2. mapMutati...