カンマ区切りの文字列を 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 サイトの他の関連記事を参照してください。