誰かが助けてくれることを願っています。私は最初のストアド プロシージャを作成しましたが (派手なものは何もありません)、問題が発生しています。
1,2,3,4,5 などの文字列入力を与えたい場合は、単純に実行しますSELECT * FROM [TABLE] WHERE EAN IN (VAR);
したがって、ストアド プロシージャは次のようになります。
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE PROCEDURE `moments`.`new_procedure`(IN var1 VARCHAR(255))
BEGIN
SELECT * FROM moments.PRODUCT WHERE EAN IN (var1);
END
私は次のように実行しようとしています:
作品
call moments.new_procedure('5045318357397')
動作しません
call moments.new_procedure('5045318357397,5045318357427');
これは実行されますが、結果は返されません。2番目のステートメントを文字列として分類しているので、これを行っています:
select * from moments.PRODUCT WHERE EAN IN ('5045318357397,5045318357427')
これではありません:
select * from moments.PRODUCT WHERE EAN IN ('5045318357397','5045318357427')
コンマ区切りの文字列を入力として取得するには、実行クエリの入力をどのようにフォーマットする必要がありますか?