尝试执行存储过程时出现错误1064

时间:2020-01-28 16:17:32

标签: mysql phpmyadmin

我是SQL的新手,现在我正在尝试执行动态存储过程(使用phpmyadmin编写)。以前,我在内部创建了一个名为Store and Products表的数据库。当我尝试使用“ Electricity”值执行它时,出现语法错误,您可以在下面的屏幕截图中看到。我试图将@添加到传递的参数中,但出现未知列错误。有人可以解释我做错了什么吗?

更新:

BEGIN  

SET @request_string = "SELECT * from Products WHERE 1";
If(category IS not null )
  Then SET @request_string = @request_string + ' AND @Category=?';
end if;
SET @Category= category;
PREPARE statement from @request_string;
EXECUTE statement;
DEALLOCATE PREPARE statement;
END

错误:

The following query has failed : "SET @p0 = 'Electricity' ; CALL 'spGetProductsList(@p0);".

MySQL said #1064 - you have an error in your SQL syntax, check the manual that corresponds to your MYSQL server version for the right syntax to use near '0' at line 1.

更新:

P.Salmon回复后问题已解决

现在我的第四行看起来像这样:

Then SET @request_string = CONCAT(@request_string,' AND @Category= category');

0 个答案:

没有答案