Ошибка 1064 при попытке выполнить хранимую процедуру - PullRequest
1 голос
/ 28 января 2020

Я новичок ie в SQL, и теперь я пытаюсь выполнить хранимую процедуру dynamici c (написал ее с помощью phpmyadmin). Ранее я создал базу данных с именем Store and Products table внутри. Когда я пытаюсь выполнить его со значением '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 ответ

Теперь моя 4-я строка выглядит так:

Then SET @request_string = CONCAT(@request_string,' AND @Category= category');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...