关于MySQL中group by的一些问题的记录
2024-10-16 23:05:53
only full group by问题的解约方案
这个报错的原因是,在SQL语句中,你查询的字段应该是你分组的依据,即select
的column
应该全部跟在group by
之后。这个也和MySQL的版本有关系,MySQL5.7版本默认设置了 mysql sql_mode = only_full_group_by 属性。
-- 如何查看MySQL的版本?
show variables like 'version';
-- 查看当前的sql_mode
show variables like 'sql_mode';
1. 懒省事做法-修改sql_mode
set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
2. 使用正确的SQL语句
查询的字段需要全部作为分组的依据,但是实际情况下我们很多情况都是只根据一个字段来做分组,而且还需要对分组的数据进行某种规则的排序,来筛选出一条数据,那么可以通过如下SQL来实现:
select * from table_A a inner join (select col_1,max(col_2) col_2 from table_A group by col_1) tem on a.col_2 = tem.col_2
最新文章
- 三层架构的OPP实现的演示例子
- nodejs链接mongodb数据库
- JSON 基础知识总结
- Python字典方法copy()和deepcopy()的区别
- Qt on_pushButton_clicked()的用法【worldsing笔记】
- MySql中having字句对组记录进行筛选使用说明
- jQuery Mobile 图标无法显示
- 看看国外的javascript题目,你能全部做对吗?(分享)
- Eclipse+EGit的配置注意点, 以及解决Github多个本地仓库之间的冲突
- MySQL学习系列一---命令行连接mysql和执行sql文件
- 键盘皇者 RealForce 104Pro独家评测
- QlikView同button控制转换图表类型(例如,变成一个垂直的条形图)
- 干货|一个案例学会Spring Security 中使用 JWT
- SrpingBoot部署到云服务器
- laravel使用 面向对象的方式绑定多对多的关系
- ERP结账不自动清台的解决办法
- HTML常用标签1
- Hibernate初学
- ROI align解释
- java 问题