Почему моя хранимая процедура SQL выдает ошибку, когда нет результата? - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь сделать простую хранимую процедуру, где, если определенный параметр (pFirstPosition) является определенным значением, я делаю выборку с некоторыми другими параметрами в качестве фильтра.SELECT работает, только если есть хотя бы строка.Проблема в том, что вместо того, чтобы возвращать ноль, когда нет строки, он возвращает ошибку.Я использую MariaDB с phpMyAdmin, и у меня ошибка:

Статический анализ:

1 Во время анализа были обнаружены ошибки.

Отсутствует выражение.(около «ON» в позиции 25) SQL-запрос:

SET FOREIGN_KEY_CHECKS = ON;

MySQL сказал:

# 2014 - команды не синхронизированы;Вы не можете выполнить эту команду сейчас

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

BEGIN
IF pFirstPosition = 'Top' THEN
   SELECT Leader,GameMode,Language.Name,MinRank,MaxRank from Lobby
   inner join Lobby_Position on Lobby.LobbyPositionId =
Lobby_Position.LobbyPositionId
   inner join Language on Lobby.LanguageId = Language.LanguageId
   WHERE Lobby.MinRank <= pUserRank
   AND Lobby.MaxRank >= pUserRank
   AND Language.Name = pLanguage
   AND GameMode = pGamemode;
End IF;
End

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Очевидно, это была ошибка phpmyadmin , которая была недавно исправлена ​​

0 голосов
/ 25 октября 2018

«ЯЗЫК» - зарезервированное слово, поэтому заключите его в кавычки:

   inner join `Language` on Lobby.LanguageId = Language.LanguageId
...