目標
パラメーターが null でない場合にのみ、"where" 句を使用します。
問題
構文がわかりません。
私が持っているもの
機能しない次の構文。
CREATE DEFINER=`root`@`localhost` PROCEDURE `getProductsListForHome`
(IN `inOffer` INT, IN `categoryId` INT)
BEGIN
SELECT (MIN(`map`.`Product_Price`)) as `minProductPrice`,
(MAX(`map`.`Product_Price`)) as `maxProductPrice`,
`pr`.`Product_Name` as `productName`,
`ca`.`Category_Name` as `categoryName`
FROM `bm_market_products` as `map`
JOIN `bm_products` as `pr` ON `map`.`Product_Id` = `pr`.`Product_Id`
JOIN `bm_products_category_relationship` as `car`
ON `pr`.`Product_Id` = `car`.`Product_Id`
JOIN `bm_product_categories` as `ca` ON `car`.`Category_Id` =
`ca`.`Category_Id`
WHERE `map`.`Product_State` = inOffer
IF (`categoryId` != null) THEN
AND `ca`.`Category_Id` = `categoryId`
END IF;
GROUP BY `map`.`Product_Id`;
END
問題は19行目。
質問が重複していますか?
私はそうは思わない。私はこの主題について検索しましたが、成功しませんでした — それから私は投稿するためにここに来ました.
詳細
ここで制御フロー関数について読みましたが、まだ混乱しています。
前もって感謝します!