ホームページ >データベース >mysql チュートリアル >文字列配列を MySQL ストアド プロシージャに渡すにはどうすればよいですか?

文字列配列を MySQL ストアド プロシージャに渡すにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 02:44:10308ブラウズ

How Can I Pass String Arrays to MySQL Stored Procedures?

MySQL ストアド ルーチンに配列パラメータを渡す

文字列の可変長配列を操作する場合、それらをパラメータとして MySQL ストアド ルーチンに渡すと問題が発生する可能性があります。これを克服するための代替ソリューションは、配列値を 1 つの文字列に連結し、プリペアド ステートメントを利用することです。

次のコード スニペットは、プロセスの概要を示しています。

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);

Thisこのソリューションを使用すると、文字列値の配列を MySQL ストアド ルーチンに渡し、メモリ内テーブル内のデータを操作できるようになります。

以上が文字列配列を MySQL ストアド プロシージャに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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