Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ЗАПРОС SQL / 4 сообщений из 4, страница 1 из 1
06.03.2017, 23:46
    #39415095
charleyCo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ЗАПРОС SQL
ВСЕМ привет, подскажите пожалуйста почему не работает ?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
07.03.2017, 06:11
    #39415135
ЗАПРОС SQL
charleyCo,

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



а своими словами можешь рассказать ту логику, что, по твоему мнению, реализует этот кусок кода?
...
Рейтинг: 0 / 0
07.03.2017, 07:49
    #39415150
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ЗАПРОС SQL
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
08.03.2017, 11:38
    #39415802
charleyCo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ЗАПРОС SQL
Всем спасибо, вопрос решился)) Жаль спасибо не поставить((
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ЗАПРОС SQL / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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