英文:
gorm select and returns a column in the form of a slice
问题
gorm有没有像PHP中的某个方法可以做到这样的事情?
$name := db.Column("name")
// $name的输出: ["joe", "john", .....]
fmt.Println($name)
我想要做的是(伪代码):
var ct []string
db.Model("user").Column(&ct)
// ct的输出: []string{"joe", "john", .....}
fmt.Println(ct)
或者我必须使用结构体获取结果,然后格式化为切片吗?
gorm版本:v1.21.11
英文:
Is there gorm has the method to do this like something in PHP ?
$name = $db->column("name");
// output of $name: ["joe", "john", .....]
print_r($name);
What I want to do (fake code):
var ct []string
db.Model("user").Column(&ct)
// output of ct: []string{"joe", "john", .....}
fmt.println(ct)
Or I must get result with strcut and then format to slice?
gorm version: v1.21.11
答案1
得分: 4
创建一个具有你想要获取的字段的类型,并声明一个具有该新创建类型的数组。
type name string
var arr []name
// 使用表格
err := db.Table("your table name").Select("name").Find(&arr).Error
// 使用模型字段
err := db.Model(User{}).Select("name").Find(&arr).Error
你可以查看 gorm 的官方文档:
https://gorm.io/docs/advanced_query.html#Smart-Select-Fields
英文:
Create a type with the field you want to grab and and declare an array with that newly created type.
type name string
var arr []name
// with table
err := db.Table("your table name").Select("name").Find(&arr).Error
// with model field
err := db.Model(User{}).Select("name").Find(&arr).Error
You can look into the gorm's official documentation:
https://gorm.io/docs/advanced_query.html#Smart-Select-Fields
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论