这种在 mysql 5 中有效但在 mysql 8 中不起作用的语法有什么问题 [英] What is wrong with this syntax that works in mysql 5 but doesn't work in mysql 8

查看:36
本文介绍了这种在 mysql 5 中有效但在 mysql 8 中不起作用的语法有什么问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

第 3 行 '!=guildRank LIMIT 1 END' 附近的 SQL 语法中出现 1064 错误

1064 error in SQL Syntax near '!=guildRank LIMIT 1 END' at line 3

CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteUserGuildAttr`(IN userId INT unsigned, IN guildId 
INT unsigned, IN guildRank SMALLINT unsigned)
BEGIN
     DELETE FROM guildattr WHERE id=userId AND guild_id=guildId AND rank!=guildRank LIMIT 1;
END

推荐答案

MySQL 8.0 添加了 rank() 窗口函数,所以现在是 保留.

MySQL 8.0 added the rank() window function, so it is now reserved.

你需要逃避它:

`rank` <> guildRank

对于条件.

这篇关于这种在 mysql 5 中有效但在 mysql 8 中不起作用的语法有什么问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆