场景:一个运单,如果可以多次入库,就会有多条入库记录的日志

需求:现在需要获取最新的那一条入库记录的日志

<>1、在WHERE条件后面使用子查询的模式

* 这样的话,这些条件就直接放在子查询中就可以,然后精确的返回指定的最新id,在外层令用id过滤出一条数据
* 如果是id自增,就用MAX(id),如果不是id自增,那么就需要用MAX(create_time)之类的字段来取出一条最新的记录 SELECT *
FROM tms_waybill_log log WHERE log.id = ( SELECT MAX(id) FROM tms_waybill_log
WHERE dr = 0 AND waybill_id = 125 AND waybill_status = 1010 )
<>2、使用ORDER BY 的模式

* 使用ORDER BY将其倒序排序,然后取出第一条,就是最新的
* 使用ORDER BY时,会先执行WHERE
,过滤出一些数据,然后再对这些数据进行排序,如果过滤出的数据比较多,那么效率就比较低,如果过滤出的数据比较少,那么几乎没什么影响,效率很快 SELECT *
FROM tms_waybill_log log WHERE log.dr = 0 AND log.waybill_id = 125 AND log.
waybill_status= 1010 ORDER BY log.id DESC LIMIT 1
若有其它方法,欢迎底部留言探讨哦!

技术
©2019-2020 Toolsou All rights reserved,
TypeScript:函数类型接口8道大厂指针笔试题让你秒杀指针!!!MySQL 日期时间加减mysql 查询条件之外的数据_mysql 查询符合条件的数据查linux的操作系统版本,如何查看Linux操作系统版本?将String类型转换成Map数据类型使用uuid做MySQL主键,被老板,爆怼一顿C语言中的字符串函数和字符函数linux服务器中毒排查--基础篇C# ASCII码字符转换