搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
寸_铁
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
最新基于php的进销存源码|ERP 系统源码uniapp开发_php erp源码
2
JMeter的下载安装与使用(Mac)_jmeter mac下载
3
【腾讯云HAI域探秘】体验半小时在HAI上跑起Segment Anything
4
利用llama.cpp量化部署Llama-3-Chinese-8B-Instruct大模型_llamacpp llama3
5
【VUE3】Router安装及使用_vue3安装router
6
Git log详解
7
内网安全-隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac 简单总结
8
linux日常命令_linux lspv
9
人脸匹配(face matching)
10
《书生大模型实战营第3期》基础岛 第1关 :书生大模型全链路开源体系
当前位置:
article
> 正文
MySQL 分组取最新的一条记录_数据库取最新时间的记录只出一个数据
作者:寸_铁 | 2024-08-09 10:14:13
赞
踩
数据库取最新时间的记录只出一个数据
1.
通过子查询方式实现(
该方法不可取
)
1.1
先将数据按照日期倒序排序(日期最新的在最前面),然后在group,这样每个分类的第一条肯定是日期最新的。
SELECT *
FROM (SELECT *
FROM test
WHERE created_time BETWEEN '2018-09-11 00:00:00' AND '2018-09-11 23:59:59'
ORDER BY `created_time` DESC) `tmp`
GROUP BY category
ORDER BY `created_time` DESC
#有问题。这里分组取的并不是每个分组中的第一行数据。
#官方文档说明:去掉sql_mode中的
ONLY_FULL_GROUP_BY
mysql可以从每个组中自由选择任何值,因此,除非它们相同,否则选择的值是不确定的,这可能不是您想要的。 此外,通过添加ORDER BY子句不能影响从每个组中选择值。 选择值之后,将进行结果集排序,并且ORDER BY不会影响服务器在每个组中选择哪个值。
1.2 对于自增id来说:
一般id越大的时间越近,可以先选出各个分类最大的id,然后in。
SELECT *
FROM test
WHERE id IN (SELECT MAX(id) FROM test GROUP BY category_id);
1.3
连表查询,选择出每个分类的id和最大时间作为一个临时表,然后原表和临时表连接,条件是分类id和时间相等。
SELECT *
FROM test AS a, (
SELECT category_id, MAX(DATE) AS `date`
FROM test AS b
GROUP BY category_id) AS b
WHERE a.category_id=b.category_id
AND a.date = b.date
注:1.2 和 1.3 方法最可靠
2. 通过group_concat函数
* 利用
group_concat函数的排序功能
group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )
作用:将要连接的字段按照排序字段的顺序用分隔符连起来显示,默认分隔符是”,”。
如:select group_concat(id order bydatedesc) fromtestgroup by category_id
按照时间排序将id连接起来,第一个一定是时间最新的
* 利用substring_index函数来截取第一个值
substring_index(str,delim,count),str:要处理的字符串、delim:分隔符、count:计数
GROUP_CONCAT将group by 后的id排序后连接起来,SUBSTRING_INDEX取得每行(每个分类)的第一个。
SELECT *
FROM `test`
WHERE id IN (SELECT SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY `date` DESC),',',1)
FROM `test`
GROUP BY category_id )
ORDER BY `date` DESC;
遇到问题:当每个分租的行数比较多,GROUP_CONCAT()的字段又比较长,会报如下错误:
错误代码: 1105
bytes.Buffer: truncation out of range
原因:group_concat有长度限制
解决方法:变量:group_concat_max_len为1024,设置的大一点
例如:SET SESSION group_concat_max_len=9999999
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/寸_铁/article/detail/952743
推荐阅读
article
【
MySQL
】
本地
创建
MySQL
数据库
详解...
(方法一)点开【开始】菜单>>在搜索框中输入“cmd”>>在搜索结果中,右击【命令提示符】程序>>点击选择“以管理员身份...
赞
踩
article
mysql
stddev
_
mysql
常用
的
聚合
函數
| 學步園...
GROUP BY(聚合)
函數
本章論述了用於一組數值操作
的
group (集合)
函數
。除非另作說明, group
函數
會忽...
赞
踩
article
MySQL
聚合
函数
初探...
MySQL
提供了许多聚合
函数
,常见的如sum,avg,count,min,max等。那这些聚合
函数
在
MySQL
底层是...
赞
踩
article
eclipse
之
MySQL
数据库
与Web前端存储交互_
eclipse
创建
的
web项目.
mysql
...
在doGet()方法中,首先构建了一个查询语句"select * from user",然后调用MysqlUtil类
的
g...
赞
踩
article
docker
my
sql
备份与
还原
_
docker
my
sql
还原
sql
...
docker
直连
my
sql
数据库、备份-所有数据库的表结构及数据、
还原
-所有数据库的表结构及数据、备份-单个数据库的表结...
赞
踩
article
Mysql
备份
与还原_
mysql
数据库
备份
与还原...
• 物理
备份
: 对
数据库
操作系统的物理文件(如数据文件、日志文件等)的
备份
。• 增量
备份
:只有在上次完全
备份
或者增量
备份
...
赞
踩
article
MySQL
:
CTE
通用表达式...
CTE
(Common Table Expression,通用表达式)是在 SQL 查询中定义临时结果集的一种方法,它可以...
赞
踩
article
MySQL
--
数据库
备份...
为什么要备份、
MySQL
数据备份需要重视的内容、
MySQL
备份类型:物理备份、逻辑备份、物理和逻辑备份的区别。
MySQL
...
赞
踩
article
MySQL
:
information
_
schema
查找某个表
的
主键是否在
数据
的
其他位置出现...
最近遇到一个问题,需要替换某张表
的
主键id,那么相关联
的
字段也需要替换,但是有不知道哪些字段?
MySQL
:informa...
赞
踩
article
MySQL
CTEs
通用
表
表达式
:进阶学习-
递归
查询
...
递归
通用
表
表达式
是其会引用自身的
通用
表
表达式
。
CTEs
递归
通用
表
表达式
补上了
MySQL
8之前无法使用
递归
查询
的空白。在...
赞
踩
article
MYSQL
根据
条件
order
by 动态
排序
...
MYSQL
根据
条件
order
by 动态
排序
MYSQL
根据
条件
order
by 动态
排序
...
赞
踩
article
MySQL
CTE
通用
表
表达式
:基础学习...
CTE
(Common Table Expressions),是一个可以在单个语句范围内被创建的临时结果集,可在该语句中被...
赞
踩
article
mysql
cte
_
MySQL
8 中
CTE
通用
表
表
达式,
CTE
是什么,
CTE
的好处...
前言Mysql 8 正式发布了,新增了很多优秀特性,之后我会挑些重点来分享。下面和大家一起熟悉下
CTE
(Common ...
赞
踩
article
MySQL
公用表
表达式
...
MySQL
8 新特性——公用表
表达式
_公用表
表达式
公用表
表达式
...
赞
踩
article
【
MySQL
】
MySQL
8.0
新特性之 - 公用表
表达式
(
CTE
)_
mysql
cte
...
MySQL
从
8.0
开始支持 WITH 语法,即:Common Table Expressions -
CTE
,共用...
赞
踩
article
mysql
cte
的
好处_
Mysql
8 重要新特性 -
CTE
通用表表达式...
前言
Mysql
8 正式发布了,新增了很多优秀特性,之后我会挑些重点来分享。下面和大家一起熟悉下
CTE
(Common T...
赞
踩
article
MYSQL-
INFORMATION
_
SCHEMA
信息
数据库
(MYSQL注入猜解)_reference...
列ACTION_REFERENCE_OLD_ROW和ACTION_REFERENCE_NEW_ROW分别含有旧的和新的列...
赞
踩
article
MySQL
INFORMATION
_
SCHEMA
数据库
STATISTICS
表_
mysql
stat...
MySQL
INFORMATION
_
SCHEMA
数据库
STATISTICS
表
INFORMATION
_
SCHEMA
的ST...
赞
踩
article
MySQL
:
TABLE
_
SCHEMA
及其应用_table
schema
...
在
MySQL
数据库管理系统中,
TABLE
_
SCHEMA
代表了数据库的逻辑结构和组织方式。
TABLE
_
SCHEMA
通常指的...
赞
踩
article
[附源码]计算机
毕业设计
农村
养老
保险
信息管理系统
(JSP+
java
+
springmvc
+
mysql
+...
本文介绍了开发一个农村
养老
保险
信息管理系统
的过程,涉及Java、
MyBatis
、Maven、MySQL等技术,以B/S模...
赞
踩
相关标签
数据库
mysql
android
mysql stddev
java
开发语言
eclipse
docker
后端
数据库系统
数据库开发
adb
学习