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

推薦する

スタイリッシュなウェブページデザインを作成する方法(グラフィックチュートリアル)

「壮大」という言葉は、おそらく現代のデザイナーが最も聞きたくない言葉でしょう。デザイナー:「デザイン...

CSS マルチレベルメニュー実装コード

これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...

Vueは動的ルーティングの詳細を実装します

目次1. フロントエンド制御1. router.js ファイル内 (router.js にそれぞれ静...

HTML テーブル データを Json 形式に変換するサンプル コード

<table>テーブルデータをJSON形式に変換するJavaScript関数は次のとおり...

Reactの状態の理解についての簡単な分析

複雑なコンポーネント (クラス コンポーネント) と単純なコンポーネント (関数コンポーネント) を...

HTML でフォーム コントロールを無効にする 2 つの方法: readonly と disabled

Web ページを作成する過程では、フォームがよく使用されます。しかし、フォーム上のコントロールを変更...

CSS は Google マテリアル デザインのテキスト入力ボックス スタイルを実装します (推奨)

みなさんこんにちは。今日は、純粋な CSS を使用して Google マテリアル デザインのテキスト...

VMWare Linux MySQL 5.7.13 のインストールと設定のチュートリアル

この記事では、参考までにVMWare LinuxにMySQL 5.7.13をインストールするチュート...

HTTP 戻りコード一覧(中国語と英語の説明)

httpリターンコードリスト(以下は概要です)詳細な中国語の説明についてはここをクリックしてくださ...

Vue グローバルメソッドを設定する 2 つの方法

目次1. はじめに2. 最初の方法3. 2番目の方法要約する1. はじめにVue プロジェクトの開発...

マークアップ言語 - CSS レイアウト

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...

Vue は Websocket カスタマー サービス チャット機能を実装します

この記事では主に基本的なチャットの実装方法を紹介します。今後は絵文字や写真のアップロードなどの機能も...

単一の MySQL テーブル内の行数が 500 万を超えてはいけないのはなぜですか?

今日は、興味深いトピックについてお話ししましょう。データベースとテーブルを分割することを検討する前に...

Centos8 の Django プロジェクトに nginx+uwsgi をデプロイするチュートリアル

1. 仮想環境virtualenvのインストール1. virtualenvをインストールするpip3...