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

遵义网站制作报价北京seo招聘网

遵义网站制作报价,北京seo招聘网,营销网站费用,成都做网页公司目录 1.问题发现 2.ONLY_FULL_GROUP_BY模式 2.1. 严格模式 (ONLY_FULL_GROUP_BY 启用,MySQL 5.7.5 默认) 2.2 宽松模式 (ONLY_FULL_GROUP_BY 禁用,旧版本默认) 3. 如何避免问题? 方案 1:严格模式 正确使用 GROUP BY 方案…

目录

1.问题发现

2.ONLY_FULL_GROUP_BY模式

2.1. 严格模式 (ONLY_FULL_GROUP_BY 启用,MySQL 5.7.5+ 默认)

2.2 宽松模式 (ONLY_FULL_GROUP_BY 禁用,旧版本默认) 

3. 如何避免问题? 

方案 1:严格模式 + 正确使用 GROUP BY

方案 2:使用聚合函数明确处理非聚合列

方案 3:临时禁用严格模式(不推荐)

4.总结


1.问题发现

        项目使用的mysql数据库,换高版本数据库后发现好多查询sql报错。什么情况,以前不是挺稳定。追踪dao sql查看后发现有很多sql的非聚合列未出现在group by中,这多sql有问题。但是之前好像没有问题,隐约记得mysql查询可以非聚合列不放在group by中。查了资料后原来是mysql8.0默认开启了ONLY_FULL_GROUP_BY模式。

2.ONLY_FULL_GROUP_BY模式

2.1. 严格模式 (ONLY_FULL_GROUP_BY 启用,MySQL 5.7.5+ 默认)

  • 会直接报错(错误代码 1055

  • 错误信息类似:

ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.table.column' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
  • 必须将所有非聚合列都包含在 GROUP BY 中,或者用聚合函数处理它们。

2.2 宽松模式 (ONLY_FULL_GROUP_BY 禁用,旧版本默认) 

MySQL 会从每个分组中任意选择一个值返回,但不保证确定性:

  • 可能是该分组的第一条记录的值

  • 也可能是最后一条、随机一条,取决于存储引擎和查询执行计划

  • 多次执行同一查询可能返回不同的值(数据不稳定)

示例:

假设有一张表 orders

SELECT customer_id, order_date,  -- 不在 GROUP BY 中,且每个 customer_id 有多个 order_dateSUM(amount) 
FROM orders 
GROUP BY customer_id;

在宽松模式下:

  • 对于每个 customer_idorder_date 的值是不确定的(可能是该客户最早/最晚/某次订单的日期)

  • 查询结果不可靠,可能误导业务逻辑。

3. 如何避免问题? 

方案 1:严格模式 + 正确使用 GROUP BY

-- 包含所有非聚合列
SELECT customer_id, order_date, SUM(amount)
FROM orders
GROUP BY customer_id, order_date;

方案 2:使用聚合函数明确处理非聚合列

-- 用 MAX/MIN/GROUP_CONCAT 等聚合函数
SELECT customer_id, MAX(order_date) AS latest_order_date,SUM(amount)
FROM orders
GROUP BY customer_id;

方案 3:临时禁用严格模式(不推荐)

SET SESSION sql_mode = '';  -- 关闭 ONLY_FULL_GROUP_BY

4.总结

模式行为可靠性建议
严格模式直接报错✅ 推荐,强制写出明确查询
宽松模式返回任意值❌ 避免使用,结果不可预测

最佳实践:始终启用 ONLY_FULL_GROUP_BY,并确保查询逻辑明确。

http://www.hkea.cn/news/920975/

相关文章:

  • 南宁老牌网站建设公司正版google下载
  • 网站做信用认证有必要吗微信朋友圈推广平台
  • 电子政务网站建设要求百度关键词规划师
  • 博客网站开发毕设免费大数据分析网站
  • 深圳教育平台网站建设好消息疫情要结束了
  • 国外设计文章的网站淘宝代运营靠谱吗
  • 市桥网站建设sem论坛
  • 猎头公司是做什么的可靠吗排名优化外包公司
  • 扶贫网站建设关键词查询神器
  • 沈阳酒店企业网站制作公司2023年9月疫情又开始了吗
  • 厦门专业网站建设如何快速推广一个新产品
  • 帮人做传销网站违法吗seo网站排名助手
  • 如何做优品快报下的子网站营销型网站建设目标
  • 用织梦做网站调用乱码营业推广是什么意思
  • 做走私网站北京口碑最好的it培训机构
  • 网站建设OA系统开发it培训机构哪家好
  • 网站运维可以做哪些域名查询网站入口
  • 网站开发的基本语言外贸平台自建站
  • 女生自己做网站营销方法有哪些
  • 怎么自己做网站吓别人金融网站推广圳seo公司
  • 彩票网站的客服有做吗海淀seo搜索优化多少钱
  • 河源哪有做网站网页模板设计
  • 手机网站可以做英文版本吗近三天时政热点
  • 怎么做网站游戏网络优化排名培训
  • ic外贸网站建设黑帽seo技巧
  • 实业有限公司网站怎么做百度一下了你就知道官网
  • 企业电子商务网站推广平台有哪些渠道
  • 本地用织梦做网站百度的网站网址
  • 基础展示营销型型网站新闻发稿平台有哪些
  • 做游戏赚钱的网站最新新闻热点事件2022