MySql如何查出符合条件的最新数据行

MySql如何查出符合条件的最新数据行

结合示例:

这是一张记录人员来访的记录表。
数据表里的数据准确记录了每个人来访时带的帽子颜色、时间、人员编码(每个人唯一)。
MySql如何查出符合条件的最新数据行

数据样例:

MySql如何查出符合条件的最新数据行

需要做到的是 :

拿出符合条件最新的来访记录。

你会最怎么做?

先实现一点的, 取出 A101 这个人员编码的 最新来访记录 。

首先先展示错误的sql示例: 想当然地使用max() 函数。

SELECT MAX(id) AS id ,user_code,cap_color,create_time FROM vist_record WHERE user_code=’A101′ ;

查询结果(错误的结果):

MySql如何查出符合条件的最新数据行

显然咋一看出来的数据有模有样,但是其实是错的。

为什么是错的的,可以稍微讲一下,既然评论区有人感兴趣了(欢迎兄弟们说出自己的看法)。

简单叙述, max是聚合函数, 我们的错误示例没配合group by 去使用, 这时候其实也就mysql这个家伙能让我们执行了,很多数据库都直接报错的。

那么执行是执行的,其实这时候mysql相当于把整个表当作了一个内容块去进行一个压缩检索。

我们加上了where 条件 user_code=’A101’,所以整个内容块确实过滤掉了其他不是user_code=’A101′ 的数据。

也就是说这种松懈执行的情况下,mysql保证max 返回(相关列) 的最大值, 其他列字段它是不保证的。

正确的数据是 :

MySql如何查出符合条件的最新数据行

那是不是max(id) 用不了了?

正确用法(将符合条件的最大id值作为条件):

SELECT
id,user_code,cap_color,create_time
FROM vist_record
WHERE id IN (SELECT MAX(id) AS id FROM vist_record WHERE user_code=’A101′ )

查询结果:
MySql如何查出符合条件的最新数据行

但是看到上面使用子查询的这种方式,

大家心里面肯定也已经在暗暗地骂娘, 拿个最新数据这么麻烦?

有没有简单一点的?

有。

比如说,我们已经确定了, id是自增的,id最大的数据(符合条件的数据) 就是最新的。

那么我们就可以使用倒序 DESC 来取最新数据:

DESC 也就是 倒序/降序 。

PS:
MySql如何查出符合条件的最新数据行

使用倒序查找:

SELECT *
FROM vist_record
WHERE user_code=’A101′
ORDER BY id DESC
LIMIT 1;

查询结果:

MySql如何查出符合条件的最新数据行

或者根据时间倒序:

SELECT *
FROM vist_record
WHERE user_code=’A101′
ORDER BY create_time DESC
LIMIT 1;

查询结果:

MySql如何查出符合条件的最新数据行

就这么简单实现了吗?

那么我们如果需求要的不是指定A101 要的是涉及到的每一个人的最新数据呢?

也就是存在多组的概念。

每一类的符合条件的最新数据

橙色框就是 A101 、B202 、 C303 分别的最新记录 , 我们要取出来。

MySql如何查出符合条件的最新数据行

错误示例:

SELECT MAX(id) AS id ,user_code,cap_color,create_time FROM vist_record GROUP BY user_code

错误的筛选结果:

MySql如何查出符合条件的最新数据行

正确编码:

SELECT id ,user_code,cap_color,create_time FROM vist_record WHERE id in
(
SELECT MAX(id) AS id FROM vist_record GROUP BY user_code
)

MySql如何查出符合条件的最新数据行

感谢各位的阅读,以上就是“MySql如何查出符合条件的最新数据行”的内容了,经过本文的学习后,相信大家对MySql如何查出符合条件的最新数据行这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

文章标题:MySql如何查出符合条件的最新数据行,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/25985

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月16日 下午10:25
下一篇 2022年9月16日 下午10:26

相关推荐

  • windows移动光标到文件末尾的快捷键是什么

    移动光标到文件末尾的快捷键组合是“CTRL+END”;CTRL的全称是control,是键盘中的控制键,编辑文本时,若光标不在最后,按下END键,光标会定位到最后面;如果是一篇文档,按“CTRL+END”,光标会定位到文档的最后。 本教程操作环境:windows10系统、DELL G3电脑。 移动光…

    2022年9月15日
    25300
  • ai钢笔工具如何使用

    ai钢笔工具的使用方法和技巧: 1、在ai左边工具栏,可以找到“钢笔工具” 2、选中钢笔工具后,在画布上点一个点可以创建锚点。 3、点击第二个点,就能生成一条直线,点第三个点,就能再画出一条直线。以此类推。 4、如果想要绘制曲线,只要点下锚点后,不松开,拖动鼠标就可以了。 5、如果要删除锚点,只要点…

    2022年8月30日
    8300
  • SpringBoot统一返回格式怎么实现

    1. 直接返回结果 先看一下最基本的例子,直接将结果原封不动返回: @Data@AllArgsConstructor@JsonIgnoreProperties(ignoreUnknown = true)public class TestVo { private static final long s…

    2022年8月31日
    16800
  • windows KB4525245安装失败怎么解决

    根据情况可能不同,小编准备了五种解决方案 第一种方案: 1.查看【windows update】、【app readiness】、【Cryptographic Services】、【Background Intelligent Transfer Service】、【Windows Installer…

    2022年9月1日
    7400
  • 如何进行Apache Solr JMX服务RCE漏洞复现

    0x00简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 该漏洞源于默认配置文件solr.in.s…

    2022年9月13日
    9900
  • mysql查询视图命令是哪个

    mysql查询视图命令是“DESCRIBE”或者“SHOW CREATE VIEW”。DESCRIBE命令可以查看视图的字段信息,语法为“DESCRIBE 视图名;”,可简写为“DESC 视图名;”;而“SHOW CREATE VIEW”命令可以查看视图的详细信息,语法为“SHOW CREATE V…

    2022年9月18日
    8700
  • Web漏洞利用姿势的示例分析

    1、HTTP PUT方法利用 PUT是用来进行文件管理的方法,若运维人员未修改Web服务器缺省配置,依然支持这些方法,则可以向服务器文件系统任意上传文件。 1.1、 Netcat利用PUT方法 Netcat是一款非常出名的网络工具,简称“NC”,有渗透测试中的“瑞士**”之称。它可以用作端口监听、端…

    2022年9月22日
    9200
  • wmiprvse.exe程序有什么作用

    “wmiprvse.exe”是windows管理规范程序;该程序是windows操作系统的一个组件,用于通过“WinMgmt.exe”程序处理WMI操作,能够实现为用户提供管理信息和企业环境中的控制功能。 本教程操作环境:windows10系统、DELL G3电脑。 wmiprvse.exe是什么程…

    2022年9月2日
    7000
  • mysql如何查询最小值

    在mysql中,可以使用SELECT语句查询指定表中的全部数据,然后利用MIN()函数返回查询结果集中的最小值即可,查询语法“SELECT MIN(指定列名) FROM 表名;”。MIN()函数是用来找出结果集的最小值纪录的,可以返回查询列中的最小值,只需要将要查询的列名作为参数传递给MIN()函数…

    2022年9月21日
    21700
  • 怎么用javascript实现自定义事件功能

    概述 自定义事件很难派上用场? 为什么自定义事件很难派上用场,因为以前js不是模块化开发,也很少协作。因为事件本质是一种通信方式,是一种消息,只有存在多个对象,多个模块的情况下,才有可能需要用到事件进行通信。而现在有了模块化之后,已经可以使用自定义事件进行各模块间协作了。 哪里用得到自定义事件? 事…

    2022年8月27日
    7300
联系我们
关注微信
关注微信
分享本页
返回顶部
PingCode 比 Jira 更好用的研发管理工具。免费试用         文章及站点合作,请添加微:All-FeiFei