ホームページ > データベース > mysql チュートリアル > MySQL の strSplit 関数は、カンマ区切りの文字列を複数の行にどのように変換できますか?

MySQL の strSplit 関数は、カンマ区切りの文字列を複数の行にどのように変換できますか?

Barbara Streisand
リリース: 2024-12-06 15:39:11
オリジナル
632 人が閲覧しました

How Can MySQL's strSplit Function Transform Comma-Separated Strings into Multiple Rows?

strSplit 関数を使用した MySQL の文字列の分割

重複スレッドの質問とは異なり、この質問は特にカンマ区切りの文字列を分割する方法を尋ねます。文字列列を複数の行に分割します。これを実現するために、MySQL は strSplit() 関数を活用する多用途ストアド プロシージャを提供します。

strSplit() 関数は、指定された区切り文字 (delim) と位置 (pos) に基づいて、指定された文字列 (x) を分解します。 。これは、区切り文字で区切られた文字列の位置 pos から部分文字列を抽出し、区切り文字を空の文字列に置き換えて、結果の部分文字列を返すことによって行われます。

説明のために、入力テーブルを考えてみましょう。

Col1 Col2
1 a,b,c
2 d,e

これを目的の出力に変換するには:

Col1 Col2
1 a
1 b
1 c
2 d
2 e

BadTableToGoodTable() ストアド プロシージャを定義します。

CREATE PROCEDURE BadTableToGoodTable()
BEGIN
  DECLARE i INTEGER;

  SET i = 1;
  REPEAT
    INSERT INTO GoodTable (col1, col2)
      SELECT col1, strSplit(col2, ',', i) FROM BadTable
      WHERE strSplit(col2, ',', i) IS NOT NULL;
    SET i = i + 1;
    UNTIL ROW_COUNT() = 0
  END REPEAT;
END $$
ログイン後にコピー

ここでは、REPEAT ステートメントを使用して Col2 のカンマ区切り文字列内の各文字をループし、strSplit() を使用して部分文字列を抽出し、それを新しいテーブル (GoodTable) に挿入します。

これらの手順に従うことで、MySQL で文字列を効果的に分割し、カンマ区切りの列をより正規化されたデータに再形成できるようになります。構造。

以上がMySQL の strSplit 関数は、カンマ区切りの文字列を複数の行にどのように変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート