MySQL 8从5.7升级后SELECT语句语法问题
我最近开始测试MySQL 8,而不是5.7 基本SQL select语句失败,在5.7及更早版本中正常工作。其中一个例子是:MySQL 8从5.7升级后SELECT语句语法问题,mysql,mysql-8.0,Mysql,Mysql 8.0,我最近开始测试MySQL 8,而不是5.7 基本SQL select语句失败,在5.7及更早版本中正常工作。其中一个例子是: 从成员中选择* 您的SQL语法中有一个错误。。。。有关“成员”附近的用法,请参阅手册 但是,如果您将要查询的表的名称(在本例中为成员)用反勾号括起来,或者将数据库名称前缀为表名的名称,并用句点分隔,则该语句可以正常运行 select*from`member`以及select*from mydbname.member工作正常 我想知道的是: 是否存在可以激活/停用此行为的s
从成员中选择*代码>
您的SQL语法中有一个错误。。。。有关“成员”附近的用法,请参阅手册
但是,如果您将要查询的表的名称(在本例中为成员)用反勾号括起来,或者将数据库名称前缀为表名的名称,并用句点分隔,则该语句可以正常运行
select*from`member`
以及select*from mydbname.member
工作正常
我想知道的是:
是否存在可以激活/停用此行为的sql模式值或配置文件设置
SELECT和JOIN语法的mysql在线参考示例也是普通标识符,例如(SELECT*fromt1left-JOIN(t2,t3,t4)ON(t2.a=t1.a和t3.b=t1.b和t4.c=t1.c)
。注意t1没有包含在反勾号中,数据库也没有前缀。我错过什么了吗
当数据库对象名称与MySQL中的某些保留关键字相同时,需要使用反勾号
在您的例子中,member
实际上是MySQL中自8.0.17版以来的保留字:
是否存在可以激活/停用此行为的sql模式值或配置文件设置
与Microsoft SQL Server的“兼容性级别”选项不同,它会更改查询中的保留字集,MySQL的兼容性选项列表不允许您限制保留字:-我强烈建议您不要使用MySQL的任何兼容性模式,因为您真的,真的不想要MySQL 4.x或MySQL 5.x的非标准行为(比如ONLY\u FULL\u GROUP\u BY=off
)。我想member
是MySQL 8中的一个关键字。但是需要检查)是的,我也刚刚发现了。MySQL 8中似乎添加了一个名为JSON的新操作符。