1
私はストアドプロシージャを実行しています。問題は、if文に入ることにあるようです。私が使用する選択肢の数にかかわらず、何らかの理由で、またはそれ以外の理由で、最初のものだけが返されます。私は魅力のように動作する別のストアドプロシージャからこれをコピーしましたが、これは単に行かないでしょう。何か案は?Mysqlストアドプロシージャ複数選択
DROP PROCEDURE IF EXISTS genSelPriceTier;
DELIMITER $$
CREATE PROCEDURE genSelPriceTier(tier_id INT, default_id INT)
BEGIN
DECLARE rowCount INT DEFAULT 0;
SELECT * FROM price_tier WHERE price_tier_id = tier_id;
SET rowCount = FOUND_ROWS();
IF rowCount < 1 THEN
SELECT * FROM price_tier WHERE price_tier_id = default_id;
END IF;
END$$
DELIMITER ;
はいcertianly 1またはrowCount = 0未満でも動作しますが、この回答はうまくいきません。非常に難解です –
エラーはありません。If文に入りません。最初の選択に何も見つからない場合は、2番目の選択を返します。 rowCountが1より大きい値の値を返した場合 –
これ以上見ると、見つかった行の値が1より大きい値を返さなければなりません。私はDB id 1と2にそれぞれ2つだけを記録しています。私は(0,2)を渡す場合、私はデフォルトとしてレコード2を返す必要がありますが、それは –