weixin_44901266 2024-08-15 19:24 采纳率: 0%
浏览 60

mysql8的rank关键字引发的问题

条件
1.数据库8.0(不可以更改版本到5.7)。
2.有个jar没有源码(或者说非常难要到)
3.其中有个表的字段为rank(mysql8的关键字)
问题现象
含有rank表,在执行inster select时直接报错。

  • 写回答

2条回答 默认 最新

  • 一直免费一直爽 2024-08-15 19:24
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    MySQL 8.0中,RANK()是一个窗口函数,用于为结果集中的每一行分配一个唯一的排名。如果你的表名或字段名恰好是"rank",那么在执行查询时可能会遇到问题,因为MySQL会将其视为关键字而不是普通的标识符。

    为了解决这个问题,你可以在SQL语句中使用反引号(`)将表名和字段名括起来,这样MySQL就会将它们视为普通的标识符,而不是关键字。例如:

    INSERT INTO `rank` (column1, column2)
    SELECT column1, column2
    FROM `your_table`;
    

    或者

    SELECT `rank`, column1, column2
    FROM `your_table`;
    

    请确保将上述示例中的column1column2your_table替换为你的实际表名和列名。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月15日