go gorm select 了字段后 结果集还是所有的struct都被返回,只是其他字段为空
go gorm select 了字段后 结果集还是所有的struct都被返回,只是其他字段为空
问题出现的环境背景及自己尝试过哪些方法
相关代码
db.Debug().Where(s).Select([]string{"id","username","phone"}).Find(&user)
type User struct {
gorm.Model
Username string `json:"username"`
Phone string `json:"phone"`
Type int8 `json:"type"`
Order []Order `gorm:"ForeignKey:UId"` // hasMany 设置对应的外键
CreditCard *CreditCard `gorm:"foreignkey:CardID"`
CardID uint
}
实际结果
[
{
"id": 3,
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"deleted_at": null,
"username": "hello",
"phone": "18672858778",
"type": 0,
"Order": null,
"CreditCard": null,
"CardID": 0
},
{
"id": 6,
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"deleted_at": null,
"username": "hello",
"phone": "18672858778",
"type": 0,
"Order": null,
"CreditCard": null,
"CardID": 0
},
{
"id": 9,
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"deleted_at": null,
"username": "hello",
"phone": "18672858779",
"type": 0,
"Order": null,
"CreditCard": null,
"CardID": 0
},
{
"id": 12,
"created_at": "0001-01-01T00:00:00Z",
"updated_at": "0001-01-01T00:00:00Z",
"deleted_at": null,
"username": "hello",
"phone": "18672858779",
"type": 0,
"Order": null,
"CreditCard": null,
"CardID": 0
}
]
期望结果
[{
"id":6,
"username":"hello",
"phone":"18672858779"
},
{
"id":9,
"username":"hello",
"phone":"18672858779"
}
]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为你使用是的:
其中,&user 是一个 stuct ,肯定是一个完整的结构,没有值的字段会有默认值
如果不想显示那些的话,可以使用 Scan
文档,见这里
你好,我现在遇到了一个问题是你的升级版:
以下是我的数据库中一个表的 struct 信息,是服务告警信息
type Alarm struct {
}
我对数据库的一个字段进行了Group by操作
func (topTime TopfiveTime) GetIncidentsfive(mark string) []Alarm{
}
在mysql中执行生成如下结果:
生成的结果与Alarm struct 不一致了,导致返回的信息是原Alarm struct的值(当然是一些不可用的错误中),
求大佬解释如何能正确返回,如数据库展示的正确数据吗?