使用Sequelize查询status_config表最新插入记录的实现方法
Sequelize 查询最新创建数据实现方案
要获取status_config表中最新插入的一条数据,不需要在where条件中写复杂逻辑,直接通过order参数按create_time字段倒序排序后取第一条即可,正确写法如下:
const latestRecord = await status_config.findOne({ order: [['create_time', 'DESC']] });
方案说明
- 核心逻辑是通过
order配置指定排序规则:- 第一个参数是要排序的字段名
create_time - 第二个参数
DESC代表降序排列,值越大(时间越晚)的记录会排在最前面 findOne会自动取排序后的第一条记录,也就是最新创建的那条
- 第一个参数是要排序的字段名
特殊场景补充
如果你的业务逻辑要求必须通过where条件实现(比如要做更复杂的嵌套查询),可以先子查询拿到最大的create_time再匹配,写法如下:
const latestRecord = await status_config.findOne({ where: { create_time: Sequelize.literal('(SELECT MAX(create_time) FROM status_config)') } });
注意该写法需要你已经正确引入了Sequelize基类,否则会报未定义错误,日常使用更推荐第一种排序的方案,性能和可读性都更好。
内容的提问来源于stack exchange,提问作者Rabbani_
相关产品推荐
相关产品推荐

