powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ЗАПРОС SQL
4 сообщений из 4, страница 1 из 1
ЗАПРОС SQL
    #39415095
charleyCo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕМ привет, подскажите пожалуйста почему не работает ?7
Я УЖЕ все перепробывал

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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
да я нуб и никогда не использовал процедуры, незнаю много нюансов ((

вообщем я хочу добиться выполнения этого куска когда через цикл
Код: plsql
1.
2.
SELECT F_STUDENT, F_FACULTET FROM Main;
WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i;



Помогите пожалуйста, подскажите что не так))
...
Рейтинг: 0 / 0
ЗАПРОС SQL
    #39415135
charleyCo,

без цикла этот кусок кода работает?
если да, то можешь показать то место в документации, где ты вычитал про такой синтаксис?
Код: sql
1.
F_FACULTET = (1 OR 2 OR 3)



а своими словами можешь рассказать ту логику, что, по твоему мнению, реализует этот кусок кода?
...
Рейтинг: 0 / 0
ЗАПРОС SQL
    #39415150
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
charleyCoвообщем я хочу добиться выполнения этого куска когда через цикл
Код: plsql
1.
2.
SELECT F_STUDENT, F_FACULTET FROM Main;
WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i;

(1 OR 2 OR 3) = 3, так что в итоге получается
Код: plsql
1.
2.
SELECT F_STUDENT, F_FACULTET FROM Main;
WHERE F_FACULTET = 3 AND F_STUDENT = i;

[/quote]
Это первое.

Второе. У процедуры нет параметров. Так что передавать ей параметр бессмысленно.

Третье. i получит значение 0, следовательно, цикл никогда не выполнится.

Четвёртое. Точка с запятой завершает предложение (запрос). А потому
Код: sql
1.
2.
SELECT F_STUDENT, F_FACULTET FROM Main;
WHERE F_FACULTET = (1 OR 2 OR 3) AND F_STUDENT = i;


это ДВА запроса, второй из которых синтаксически кривой.

Пятое. При формировании процедуры из более чем одного предложения необходимо изменить (и потом восстановить) DELIMITER.

В общем, я согласен с сервером:

charleyCoИзучите документацию по используемой версии MySQL
...
Рейтинг: 0 / 0
ЗАПРОС SQL
    #39415802
charleyCo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, вопрос решился)) Жаль спасибо не поставить((
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ЗАПРОС SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]