MySQL ストアド ルーチンに配列を渡す
MySQL でストアド ルーチンを操作する場合、次の配列を渡す必要がある場合があります。文字列をパラメータとして使用します。 MySQL には明示的な配列データ型がないため、このタスクには課題が生じます。ただし、動的 SQL 手法を活用することで、この機能を実現できます。
解決策: 動的 SQL クエリの構築
ストアド ルーチンに配列を渡すには、次のようにします。動的 SQL を使用できます。動的 SQL では、文字列の連結を使用して実行時に SQL クエリを構築します。次のストアド プロシージャは、このアプローチを示しています。
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 サイトの他の関連記事を参照してください。