質問:
MySQL で文字列の配列を効果的に渡すにはどうすればよいですかストアドルーチンへのパラメータとして?配列には、さまざまな長さの多数の要素が含まれる場合があります。目的は、これらの文字列をメモリ内のテーブルに挿入して、さらなるデータ操作を行うことです。
例:
文字列値「Banana, Apple,オレンジ"。望ましい結果は、これらの値が設定された 1 つの列「fruitName」を持つ一時テーブルです。
考えられる解決策:
提供されているサンプル関数は、これを実現する方法を示しています。 Microsoft SQL Server のタスクですが、MySQL には直接適用できない場合があります。 MySQL の代替アプローチを検討します。
MySQL 実装:
準備されたステートメントを使用して動的クエリを構築し、配列を文字列として渡し、目的の結果を取得できます。以下に図を示します。
DELIMITER $$ CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255)) BEGIN SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END $$ DELIMITER ;
使用法:
このストアド プロシージャを使用するには、次の手順に従います。
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
このアプローチにより、次のことが可能になります。文字列の配列を効率的に渡し、MySQL 内でのデータ操作に必要なメモリ内テーブルを生成します。
以上が文字列配列を MySQL ストアド プロシージャに効率的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。