![](/img/trans.png)
[英]'select into' statement not working in mysql store procedure with cursor
[英]MySQL Store Procedure with IF Statement
我需要定义一个mysql存储过程,如果您将其传递给参数,则在选择查询中使用它,如果没有,则不这样做。
这是我所拥有的,并且不起作用:
IF (selected_category IS NULL) then
SELECT i.id, i.name, i.summary, i.description, i.location, c.name AS 'category_name'
FROM items i, categories c WHERE i.category_id = c.id;
ELSE IF (selected_category IS NOT NULL) then
SELECT i.id, i.name, i.summary, i.description, i.location, c.name AS 'category_name'
FROM items i, categories c WHERE i.category_id = c.id AND c.name LIKE selected_category;
END IF
我还尝试了代替ELSE IF
来编写ELIF
, END IF;
然后创建新的IF
但没有任何效果。
当我单击“创建过程”时,它总是显示错误,除非我注释掉第一个SELECT
下面的所有内容。
帮助将不胜感激。 谢谢。
您只能使用一个查询:
SELECT i.id, i.name, i.summary, i.description, i.location, c.name AS 'category_name'
FROM items i, categories c
WHERE i.category_id = c.id
AND IF(selected_category IS NOT NULL, c.name LIKE CONCAT('%', selected_category,'%'), TRUE);
另外,请使用显式联接而不是隐式联接。
ps:我知道我并没有真正回答你的问题,我只是提供了一个替代方案。 我认为您只是错过了ELSEIF
声明。 您正在使用ELSE IF
并尝试了ELIF
,但这显然不是正确的语法 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.