MySQL ストアド ルーチンに配列を渡す
一般的な要件は、値の配列をパラメータとして MySQL ストアド ルーチンに渡すことです。ただし、他の多くのデータベース管理システムとは異なり、MySQL はこの機能をネイティブにサポートしていません。
実行可能な解決策の 1 つは、配列を文字列に変換し、それを引数として渡すことです。この文字列はストアド ルーチン内で使用され、CONCAT() ステートメントと SELECT INTO ステートメントを使用して一時テーブルを作成できます。
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 ;
文字列化された配列を GetFruits プロシージャに渡すことで、一時テーブルを動的に作成できます。指定された果物の名前を含むテーブルを作成し、スクリプト内でさらなる処理を可能にします。
このプロシージャを利用するには、文字列の配列を MySQL 変数に割り当ててから呼び出すことができます。ストアド ルーチン:
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
このアプローチにより、MySQL のストアド ルーチンに値の配列を効果的に渡すことができ、可変長の文字列リストを含む複雑なデータベース操作が容易になります。
以上がMySQL ストアド プロシージャに配列を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。