gorm去重查询 iris框架
写练习 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还是结构体
自用笔记,仅供参考
浙公网安备 33010602011771号