Я новичок 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');