golang gorm搜索数据库返回指定的字段

哈哈gogo 2020-06-06 01:01:21
select user,name from user
或者
select * from user
查到的结果只返回显示user,name这两个字段,gorm怎么个写法
...全文
5002 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Burg丶 2021-01-20
  • 打赏
  • 举报
回复 1
引用 1 楼 qybao 的回复:
那就定义结果集只有user和name两个字段就好了
//定义一个结构体
type User struct {
    //id        int64 `gorm:"primary_key"`
    user    string //字段和表字段相同,类型也相同
    name  string
}

func (User) TableName() string { //实现TableName接口,以达到结构体和表对应,如果不实现该接口,gorm会自动扩展表名为users(结构体+s)
	return "user"
}

//连接数据库(mysql for example)
url :=  "your_dbUser:your_dbPassword@tcp(your_dbHost:your_dbPort)/your_dbName?charset=utf8&parseTime=True&loc=Local"
var db *gorm.DB
db, err = gorm.Open("mysql", url)

//查询数据
data := &[]*User{} //定义结果集数组
tx := db.Where("your_condition"); //如果没有条件直接db.Find(data)也可以,或者db.Table("user").Where("condition").Find(data) //如果不实现TableName接口,在这里指定表也可以
tx = tx.Find(data) //这里用了事务,为了方便rollback和commit
数据查询为啥要用事务?
哈哈gogo 2020-10-19
  • 打赏
  • 举报
回复
ok,康忙,baby
qybao 2020-06-08
  • 打赏
  • 举报
回复
那就定义结果集只有user和name两个字段就好了
//定义一个结构体
type User struct {
//id int64 `gorm:"primary_key"`
user string //字段和表字段相同,类型也相同
name string
}

func (User) TableName() string { //实现TableName接口,以达到结构体和表对应,如果不实现该接口,gorm会自动扩展表名为users(结构体+s)
return "user"
}

//连接数据库(mysql for example)
url := "your_dbUser:your_dbPassword@tcp(your_dbHost:your_dbPort)/your_dbName?charset=utf8&parseTime=True&loc=Local"
var db *gorm.DB
db, err = gorm.Open("mysql", url)

//查询数据
data := &[]*User{} //定义结果集数组
tx := db.Where("your_condition"); //如果没有条件直接db.Find(data)也可以,或者db.Table("user").Where("condition").Find(data) //如果不实现TableName接口,在这里指定表也可以
tx = tx.Find(data) //这里用了事务,为了方便rollback和commit

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧