私は完全にストアドプロシージャが新しく、その基本的な概念を理解しようとしています。これは私の最初のものですが、もちろん間違ったことがあります。MySqlストアドプロシージャWHEREパラメータに応じて「可変」
基本的にクエリは同じです(元のものはより複雑で、他の操作もあります)が、WHERE句はselType
パラメータに従って変更されます。だから、私がしようとしているのは、param値に従ってWHERE
句の一種の「可変」です。 これは正しいアプローチであるかどうかわかりませんが、そうであれば何が問題なのですか。
DELIMITER //
CREATE PROCEDURE `testProcedure` (IN addressId INT, IN selType BOOLEAN)
BEGIN
DECLARE whereUserCriteria VARCHAR(127);
IF selType = 1 THEN
SET whereUserCriteria = CONCAT('address_id = ', addressId);
ELSE
SET whereUserCriteria = 'address_id = 1';
END IF;
SELECT whatever
FROM wherever AS ad
WHERE whereUserCriteria ;
END //
それは動作を停止し、それはvariabilisedいないとき、私はそれをダイナミックにするために変数を使用すると、それはできるだけ早く、完璧に動作しますが、ことを見てうれしいです。 もちろん、これは、このような場合に最良のアプローチが何であるかを理解することを目的とした単なる例です。
[** this **](http://stackoverflow.com/a/5728155/3470178)を作成したい場合は、次のようにします。 –