为什么我的SQL存储过程没有结果时会出现错误?

时间:2018-10-17 22:37:17

标签: mysql sql phpmyadmin mariadb

我正在尝试创建一个简单的存储过程,如果某个参数(pFirstPosition)是某个值,我将使用其他一些参数作为过滤器进行选择。仅当至少有一行时,SELECT才起作用。问题是没有行时不返回null,而是返回错误。我正在将MariaDB与phpMyAdmin一起使用,并且出现的错误是

  

静态分析:

     在分析过程中发现

1个错误。

     

缺少表达。 (在位置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 :(得分:0)

“ LANGUAGE”是一个保留字,因此请用反引号将其引用:

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

答案 1 :(得分:0)

显然是phpmyadmin bug that got fixed recently