MySQL含多余句点的查询在部分服务器报错,求配置项原因
SQL查询语法错误的配置项排查
- 你遇到的问题核心不是SQL模式配置,而是MySQL版本差异:
- 你的查询语句
SELECT first_table.*,.second_table.one_column FROM first_table NATURAL JOIN second_table里,字段前的多余.属于非标准SQL语法。早期MySQL版本(比如5.7及之前部分版本)语法校验宽松,允许这种不规范写法;但高版本(比如8.0+)强化了语法规范校验,严格遵循SQL标准,所以会抛出语法错误。
- 你的查询语句
- 你列出的
ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION这些SQL模式,并不管控这种多余标点的语法问题,所以两台服务器SQL模式一致但表现不同,根源是版本不同。 - 修复后的标准写法是:
SELECT first_table.*, second_table.one_column FROM first_table NATURAL JOIN second_table
内容的提问来源于stack exchange,提问作者Mohammed Cherkaoui
相关产品推荐
相关产品推荐

