from недопустим в этой позиции, ожидая: ';'в MySQL - PullRequest
0 голосов
/ 17 февраля 2019

Я учусь создавать хранимую процедуру в MySQL и получаю ошибку при ее создании.

Вот моя хранимая процедура:

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetCategoryWiseProducts`(IN param varchar(250), IN isAll boolean)
BEGIN
    declare catName VARCHAR(250) default '';
    declare catId VARCHAR(250) default 0;

    IF(isAll) THEN
        SELECT 'All Products' as category_name, COUNT(*) as total from product_mast;
    ELSE 
        SELECT category_name INTO catName, category_id INTO catId from category_mast WHERE slug = param;
        SELECT catName as category_name, COUNT(*) as total from product_mast WHERE category_id = @category_id;
    END IF;
END;

Получение ошибки from is not valid at this position, expecting : ';' в первом запросе оператора else.

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Выберите в синтаксис: SELECT id, данные INTO @x, @y ОТ test.t1 LIMIT 1;см https://dev.mysql.com/doc/refman/8.0/en/select-into.html

0 голосов
/ 17 февраля 2019

Использование DELIMITER, см. 24.1 Определение сохраненных программ :

DELIMITER //

CREATE DEFINER ... PROCEDURE ...
BEGIN
  ...
  -- SELECT category_name INTO catName, category_id INTO catId from category_mast WHERE slug = param;
  SELECT category_name, category_id INTO catName, catId
  from category_mast
  WHERE slug = param;
  ...
END//

DELIMITER ;

Где находится значение набора переменных @category_id? *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...