目標
単一のVARCHAR()
パラメーターを介して複数の値を渡す。
シナリオ
私のアプリケーションには、いくつかのテーブルから製品を取得する手順があります。私が必要とするのは単純です:id
私がそれを渡す場合、3 つ (または何でも) の結果を受け取ります。例:
CALL getProducts('1, 2, 3');
.
これを行うために、私はIN
句を使用しています。私のクエリを見てください:
BEGIN
Select product.Name
From app_products As product
Where product.Id In (1, 2, 3)
END
1, 2, 3
それらをパラメーターで渡すにはどうすればよいですか?
私がすでに試したこと
パラメータを使用してクエリを見てください。
CREATE PROCEDURE `getProductsPrices`(IN `ids` VARCHAR(255))
BEGIN
Select product.Name
From app_products As product
Where product.Id In (ids)
END
今、私がそれを呼び出すとき:
CALL `getProductsPrices`('1, 2, 3')
戻り値は次のとおりです。
警告: 誤った DOUBLE '1, 2, 3' が切り捨てられました
誰かが私に何か提案がありますか?
複製?
同じ件名で既に検索しましたが、成功しなかったため、このトピックは重複していないと思います。