gorm只查询某一些字段字段的方法Select, 和只查询某一字段方法 Pluck

3 篇文章 0 订阅

gorm中默认是查询所有字段的, 如果我们只需要获取某些字段的值,可以通过使用 Select方法来指定要查询的字段来实现, 也可以通过定义一个需要字段的结构体来实现; 而如果我们只需要查询某一个字段的值就可以使用 Pluck方法来获取(这里的pluck就是采摘的意思,表示只摘取某一个字段的值)

Select 指定查询某些字段的方法 

先看看这个方法的定义, 这里给出了2种传递要查询字段的方法

 其实还有第三种传递查询字段的方法, 就是直接把要查询的字段使用逗号分隔后当做一个字符串传递过去,如:db.Select("uid,dept_id,mobile,username,password,nickname,email"),

如果我们通过Select方法指定了查询字段,则在获取数据的时候就只会获取到我们字段了字段的数据,没有指定自动的数据就是默认值了。

示例: 我们定义了一个测试结构体,里面包含7个字段,但是Select里面只指定了4个字段,查询后就就只会获取这4个字段的值。

// 测试
	type UserDemo struct {
		UID      int32
		Mobile   string
		Username string
		Password string
		Nickname string
		Email    string
		Status   string
	}
	demo := UserDemo{}
	global.GetTx("sys_user").Select("uid,mobile,username,email").Where("uid = 2").Find(&demo)

Pluck获取某一字段的方法

在某些时候,我们只需要某一个字段的值,这时候我们就可以使用Pluck来获取指定字段的值, 

官方的定义: 这里只演示了获取一个列表值的示例,其实我们也可以只获取某条数据的某个字段的值。

 我们如果需要获取的是某个字段的值列表,则在第二个参数这里传递一个切片, 如果只需要获取某条数据的某个值,传一个变量即可, 注意这里第二个参数都必须是指针类型的

// 测试
	var uname string // 获取某条数据的某个值
	global.GetTx("sys_user").Where("uid = 2").Pluck("username",&uname)

	var names []string // 获取字段的值列表
	global.GetTx("sys_user").Pluck("username",&names)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值