学无先后,达者为师

网站首页 编程语言 正文

go gorm想要查询数据按照where in中的数据进行排序

作者:abcnull 更新时间: 2023-07-05 编程语言

文章目录

  • 简介
  • 使用到 FIELD 函数

简介

遇到一个比较常见的场景,就是因为一般不太建议联合查询,所以在后端代码中进行多张表分别查询,但是最终的结果需要按照第一张表的某个字段去排序该怎么做呢?

使用到 FIELD 函数

流程:

  • 我先进行表 A 的查询,拿到了一组数据 id 的切片,这组数据在代码中已经按照表 A 的日期字段排好序了
  • 再把查出的表 A 的数据(已经排序好的),去表 B 查询,用到 where in,查完之后顺序不许乱
// 那么我们在查询表 B 的时候
db.Where("id IN (?)", ids).Order(gorm.Expr("FIELD(id, ?)", ids)).Find(&TableB)

这里用到了 gorm.Expr 函数,它可以将一段字符串转化为一个 query expression,而 “gorm.Expr(“FIELD(id, ?)”, ids)” 表示按照 ids 的顺序对 id 进行排序

原文链接:https://abcnull.blog.csdn.net/article/details/129449525

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新