CREATE PROCEDURE - error 1064 - MySQL

Узнай цену своей работы

Формулировка задачи:

ВСЕМ ПРИВЕТ, ПОДСКАЖИТЕ ПОЖАЛУЙСТА ПОЧЕМУ НЕ РАБОТАЕТ ?7 Я УЖЕ ПОВСЯКОМУ ПЕРЕПРОБЫВАЛ
CREATE PROCEDURE dowhile(maxi INT) 
BEGIN 
SET @i = 0 
WHILE @i<maxi DO 
SELECT F_STUDENT, F_FACULTET FROM Main 
WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = @i; 
SET @i = @i+1; 
END WHILE; 
END 
CALL dowhile(5);
то же самое
CREATE PROCEDURE dowhile()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<4 DO
SELECT F_STUDENT, F_FACULTET FROM Main;
WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i;
SET i = i+1;
END WHILE;
END
CALL dowhile(5);
выдает #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около '' на строке 3 пишу запрос в разделе SQL В PHPMYADMIN
вообщем я хочу добиться выполнения этого куска когда через цикл
SELECT F_STUDENT, F_FACULTET FROM Main
WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i;

Решение задачи: «CREATE PROCEDURE - error 1064»

textual
Листинг программы
DELIMITER $$
 
CREATE PROCEDURE dowhile(maxi INT) 
BEGIN 
    SET @i = 0;
    
    WHILE @i < maxi DO 
        SELECT F_STUDENT, F_FACULTET FROM Main WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = @i; 
        SET @i = @i+1; 
    END WHILE; 
END$$
 
DELIMITER ;

Объяснение кода листинга программы

  1. Создание процедуры с именем dowhile
  2. Установка переменной @i равной 0
  3. В цикле WHILE с условием @i меньше maxi выполняются следующие действия:
  4. Выполняется запрос SELECT к таблице Main с условием, что значение столбца F_FACULTET равно 1, 2 или 3 и значение столбца F_STUDENT равно текущему значению переменной @i
  5. Значение переменной @i увеличивается на 1
  6. Цикл повторяется до тех пор, пока условие не станет ложным
  7. Завершение процедуры

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5