日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

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

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新