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

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

go gorm想要查詢數(shù)據(jù)按照where in中的數(shù)據(jù)進(jìn)行排序

作者:abcnull 更新時(shí)間: 2023-07-05 編程語言

文章目錄

  • 簡(jiǎn)介
  • 使用到 FIELD 函數(shù)

簡(jiǎn)介

遇到一個(gè)比較常見的場(chǎng)景,就是因?yàn)橐话悴惶ㄗh聯(lián)合查詢,所以在后端代碼中進(jìn)行多張表分別查詢,但是最終的結(jié)果需要按照第一張表的某個(gè)字段去排序該怎么做呢?

使用到 FIELD 函數(shù)

流程:

  • 我先進(jìn)行表 A 的查詢,拿到了一組數(shù)據(jù) id 的切片,這組數(shù)據(jù)在代碼中已經(jīng)按照表 A 的日期字段排好序了
  • 再把查出的表 A 的數(shù)據(jù)(已經(jīng)排序好的),去表 B 查詢,用到 where in,查完之后順序不許亂
// 那么我們?cè)诓樵儽?B 的時(shí)候
db.Where("id IN (?)", ids).Order(gorm.Expr("FIELD(id, ?)", ids)).Find(&TableB)

這里用到了 gorm.Expr 函數(shù),它可以將一段字符串轉(zhuǎn)化為一個(gè) query expression,而 “gorm.Expr(“FIELD(id, ?)”, ids)” 表示按照 ids 的順序?qū)?id 進(jìn)行排序

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

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