为什么我的sql存储过程在没有结果时会出错?

moiiocjp  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(323)

我正在尝试创建一个简单的存储过程,其中,如果某个参数(pfirstposition)是某个值,我将使用其他一些参数作为过滤器进行选择。仅当至少有一行时才选择工作。问题是当没有行时,它不是返回null,而是返回一个错误。我将mariadb与phpmyadmin一起使用,错误是
静态分析:
分析中发现1处错误。
缺少表达式(位置25处“开”附近)sql查询:
设置外键\u 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

谢谢您

y4ekin9u

y4ekin9u1#

很明显,这是一个phpmyadmin错误,最近得到修复

xxe27gdn

xxe27gdn2#

“language”是一个保留字,请用backtics引用:

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

相关问题