質問:
通常のメソッドを使用して、カンマ区切りの文字列を一時的な MySQL テーブルに格納します。式?
答え:
MySQL には文字列分割用の組み込み関数がありませんが、さまざまな回避策が存在します。 1 つのアプローチには、文字列をコンポーネントに分割するためのカスタム関数とループ メカニズムが含まれます。
文字列分割のカスタム関数:
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, '');
ループとインクリメントカスタム関数:
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 のループ機能を使用してコンポーネントを一時テーブルに動的に挿入します。
以上が正規表現はカンマ区切りの文字列を解析して MySQL 一時テーブルに入れることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。