寫練習 demo 時遇到需要進行去重查詢,gorm沒有db.distinct()的寫法
// 數據庫的表字段 type Pro_location_relation struct { Id int64 Provicename string Cityname string Areaname string }
func (cs *Case)Queryprovice(){ province := []rejo.Pro_location_relation{} databases.InitGDB().Raw("select DISTINCT(provicename) from pro_location_relation").Find(&province) fmt.Println(province) }
查詢結果如下
使用原生sql語句,db.Raw("sql string").Find(&var),var必須是結構體
使用gorm的pluck方法重寫
func (cs *Case)Queryprovice(){ province := []rejo.Pro_location_relation{} proname := []string{} databases.InitGDB().Debug().Group("provicename").Select("provicename").Find(&province).Pluck("provicename",&proname) fmt.Println(proname) }
輸出結果:
使用db.Group("字段").Select("字段").Find(&var).Pluck("字段",&var1),這樣var1就可以不是結構體了,var還是結構體
自用筆記,僅供參考