我正在创建一个Stored Procedure删除父项及其位于多个表中的子记录。但是,要执行的查询只有 3 种类型,例如=:>和>=。
DELIMITER $$
DROP PROCEDURE IF EXISTS `removeStory` $$
CREATE PROCEDURE `removeStory`(IN _id INTEGER, IN _cond VARCHAR(1))
BEGIN
# checking condition
IF ISNULL(_cond) AND (_cond = '=') OR (_cond = '>') OR (_cond = '>=') THEN
# removing `comment -> replies`
DELETE FROM `comment_replies`
INNER JOIN `comments` ON `comment_replies`.`comment_id` = `comments`.`id`
WHERE `comments`.`story_id` _cond _id;
# removing `comments`
DELETE FROM `comments`
WHERE `story_id` _cond _id;
...
...
# removing `story`
DELETE FROM `stories`
WHERE `id` _cond _id;
END If;
END$$
DELIMITER ;
CALL removeStory(10, '>=');
我在_condition变量中传递查询操作,但它给了我语法错误。另外,有什么办法可以减少OR条件。