当前位置: 首页 > news >正文

关于lumen严格模式接口mysql5.6和mysql5.7报错问题

sql语句
SELECT DISTINCT`someid` 
FROM`sometable` 
WHERE`id` IN ( 123, 456, 789 ) AND `status` = 1 
ORDER BY`updatetime` DESC LIMIT 10 OFFSET 0
环境配置
生产环境使用的是 MySQL 5.6,而开发环境使用的是 MySQL 5.7。
生产环境的 SQL Mode 是空,开发环境的SQL Mode是 NO_ENGINE_SUBSTITUTION。
Lumen 配置:Lumen 的数据库配置文件中的 'strict' => env('DB_STRICT_MODE', true) 。
错误现象
  • sql语句在生产环境(MySQL5.6.16-log)和开发环境(MySQL5.7.32-log)执行都正常;
  • lumen接口在生产环境返回正常;在开发环境返回错误;
错误信息
General error: 3065 Expression #1 of ORDER BY clause is not in SELECT list, references column 'sometable.updatetime' which is not in SELECT list; this is incompatible with DISTINCT。
这个错误是因为在 SQL 查询中,你试图在 SELECT DISTINCT 语句后使用 ORDER BY 子句,而这个子句引用的列不在 SELECT 列表中。
问题分析

当你使用 DISTINCT 关键字时,SELECT 语句将返回唯一的行这意味着,你在 ORDER BY 子句中引用的任何列都必须包含在 SELECT 列表中,因为这些列是用来确定哪些行是“唯一”的。

解决方案
将 ORDER BY 子句中引用的列添加到 SELECT 列表中,或者删除 ORDER BY 子句。
总结

由于lumen指定了严格模式,导致接口会话的执行和navicat的窗口执行sql_mode是不同状态,所以测试环境的数据库能执行,但测试环境的接口不能执行。但为什么生产环境的数据库和生产环境的接口都能执行,还并不清楚。草草记录,留给需要的同学参考,欢迎各位同学指正。

相关文章:

  • 13.利用辗转相除法求两个整数的最大公约数和最小公倍数。如96,36
  • 常见面试题-计算机网络相关
  • GNU gold链接器 - target.cc 实现特定目标架构的支持
  • Python---元组的相关操作方法
  • wireshark打开tcpdump抓的包 vwr: Invalid data length runs past the end of the record
  • 如何用自然语言 5 分钟构建个人知识库应用?我的 GPTs builder 尝试
  • MarkDown文件插入图片(绝对\相对路径\调整图像大小位置)
  • Hadoop原理,HDFS架构,MapReduce原理
  • LeetCode Hot之七:438. 找到字符串中所有字母异位词
  • Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器
  • postswigger 靶场(CSRF)攻略-- 1.没有防御措施的 CSRF 漏洞
  • 【Python】 Python 使用 Pillow 处理图像:几何变换
  • C //例 7.12 用选择法对数组中10个整数按由小到大排序。
  • 基于JAX-WS实现RESTful形式的web服务端点(endpoint)
  • 【数据分享】2021-2023年我国主要城市逐月轨道交通运营数据
  • Fundebug计费标准解释:事件数是如何定义的?
  • Javascript编码规范
  • JS笔记四:作用域、变量(函数)提升
  • maven工程打包jar以及java jar命令的classpath使用
  • vagrant 添加本地 box 安装 laravel homestead
  • Vim Clutch | 面向脚踏板编程……
  • Vultr 教程目录
  • Yeoman_Bower_Grunt
  • 阿里云Kubernetes容器服务上体验Knative
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 设计模式 开闭原则
  • 使用 Docker 部署 Spring Boot项目
  • Linux权限管理(week1_day5)--技术流ken
  • 通过调用文摘列表API获取文摘
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • $$$$GB2312-80区位编码表$$$$
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (a /b)*c的值
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (windows2012共享文件夹和防火墙设置
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (力扣)循环队列的实现与详解(C语言)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .htaccess 强制https 单独排除某个目录
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net Stream篇(六)
  • .net6 webapi log4net完整配置使用流程
  • .Net的C#语言取月份数值对应的MonthName值
  • .net中应用SQL缓存(实例使用)
  • @Builder用法
  • [android] 天气app布局练习
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [cb]UIGrid+UIStretch的自适应