Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL 8从5.7升级后SELECT语句语法问题_Mysql_Mysql 8.0 - Fatal编程技术网

MySQL 8从5.7升级后SELECT语句语法问题

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

我最近开始测试MySQL 8,而不是5.7

基本SQL select语句失败,在5.7及更早版本中正常工作。其中一个例子是:

从成员中选择*

您的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的新操作符。