请教一下 gorm 怎么查某个表的多条记录的指定几个字段,每个字段的值返回一个切片

例如一个 user 表有 id 、name 、sex 、desc 四个字段,我想查最后 10 条记录,将十条记录的 name 、sex 、desc 各返回一个切片给我,请问有什么简便的方式嘛,我看官网有 Pluck 可以用,但是只能返回单个字段的切片。

gorm文档:gorm.io/zh_CN/docs/advanced_query....

讨论数量: 5

我没发现现有方案,你可以自己实现,比如这样:

package main

import (
    "fmt"
)
type User struct {
    ID   int
    Name string
}

type Users []User

func (users Users) Pluck() ([]int, []string) {
    var ids []int
    var names []string
    for i := range users {
        ids = append(ids, users[i].ID)
        names = append(names, users[i].Name)
    }
    return ids, names
}

func main() {
    users := Users{{1, "a"}, {2, "b"}}
    ids, names := users.Pluck()
    fmt.Println(ids, names)
}
1年前 评论
bronya0 (楼主) 1年前
AB 1年前

除了你写的那个 自己组织数据结构 还有另外一种,就是在重新定义struct ,重写关联关系, 哈哈!!!

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!