ホームページ >データベース >mysql チュートリアル >正規表現を使用してカンマ区切りの文字列を MySQL 一時テーブルに分割する方法

正規表現を使用してカンマ区切りの文字列を MySQL 一時テーブルに分割する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-19 21:38:13143ブラウズ

How to Split a Comma-Separated String into a MySQL Temp Table Using Regular Expressions?

MySQL Split Comma Separated String into Temp Table using RegEx

MySQL には専用の文字列分割関数がないため、代替アプローチが必要です。 1 つの方法では、カスタム関数を反復処理して分割をエミュレートします。

カスタム Split Function

次の関数は、位置 pos で delim で区切られた文字列 x を分割します。

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

ループして一時ファイルに挿入するTable

分割文字列を反復処理して一時テーブルに挿入するには、LOOP ステートメントを使用します。

DELIMITER $$

CREATE PROCEDURE ABC(fullstr)

   BEGIN
      DECLARE a INT Default 0 ;
      DECLARE str VARCHAR(255);
      simple_loop: LOOP
         SET a=a+1;
         SET str=SPLIT_STR(fullstr,"|",a);
         IF str='' THEN
            LEAVE simple_loop;
         END IF;
         #Do Inserts into temp table here with str going into the row
         insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$

注: 次のようなスクリプト言語を使用します。このようなタスクでは、MySQL のみに依存するよりも PHP を使用した方が効率的である可能性があります。

以上が正規表現を使用してカンマ区切りの文字列を MySQL 一時テーブルに分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。