ホームページ > データベース > mysql チュートリアル > カンマ区切りの文字列を MySQL 一時テーブルに分割するにはどうすればよいですか?

カンマ区切りの文字列を MySQL 一時テーブルに分割するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-07 09:34:11
オリジナル
411 人が閲覧しました

How Can I Split Comma-Separated Strings into a MySQL Temporary Table?

カンマ区切りの文字列を MySQL の一時テーブルに分割する

MySQL を使用すると、カンマ区切りの文字列を直接分割することはできません正規表現を使用して一時テーブルにコピーします。これは、MySQL には組み込みの文字列分割関数がないためです。

回避策

直接分割は実現できないため、さまざまな回避策を採用できます。

1.カスタム関数を使用した分割

MySQL でカスタム関数を作成して、文字列を個々の値に分割できます。例:

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, '');
ログイン後にコピー

2.ループの使用

ループ内でカスタム関数を呼び出し、空の値が返されるまで位置をインクリメントします。

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;
      # Insert into temp table here with str going into the row
      insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$
ログイン後にコピー

3.スクリプト言語の統合

あるいは、PHP などのスクリプト言語を利用して文字列を分割し、必要な操作を実行することもできます。

結論

MySQL には専用の文字列分割機能がありませんが、これらの回避策を使用すると、カンマ区切りの文字列を効果的に解析できます。一時テーブル。要件や好みに最も適したアプローチを選択してください。

以上がカンマ区切りの文字列を MySQL 一時テーブルに分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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