当前位置: 首页 > news >正文

Golang Gorm 高级查询之where + find

插入测试数据


package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm"
)type Student struct {ID    int64Name  string `gorm:"size:6"`Age   intEmail *string
}func (*Student) TableName() string {return "student"
}func main() {dsn := "root:7PXjAkY!&nlR@tcp(192.168.11.128:3306)/test?charset=utf8mb4&parseTime=True&loc=Local"db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})db.AutoMigrate(&Student{})var sList []Studentcount := db.Find(&sList).Delete(&sList).RowsAffectedfmt.Println("count=", count)email1 := "12396836709@qq.com"sList = []Student{{ID:    1,Name:  "lucas",Age:   30,Email: &email1,},{ID:    2,Name:  "yanzi",Age:   28,Email: &email1,},{ID:    3,Name:  "lulei",Age:   29,Email: &email1,},{ID:    4,Name:  "jerry",Age:   25,Email: &email1,},}db.Create(&sList)}

 

where + first


user := User{}
// 查询用户数据
//自动生成sql: SELECT * FROM `users`  WHERE (username = 'tizi365') LIMIT 1db.Where("username = ?", "tizi365").First(&user)
fmt.Println(user)

 

Where语句里面条件    where + find = select * from table where...........


其实就是sql语句当中的where 

	var sList []Studentdb.Debug().Where("name = ?", "lucas").Find(&sList)fmt.Println(sList)[0.746ms] [rows:1] SELECT * FROM `student` WHERE name = 'lucas'
[{1 lucas 30 0xc0001c91f0}] var s Studentdb.Debug().Where("name = ?", "yanzi").First(&s)fmt.Println(s)[1.263ms] [rows:1] SELECT * FROM `student` WHERE name = 'yanzi' ORDER BY `student`.`id` LIMIT 1
{2 yanzi 18 <nil>}

之前学的这种写法也是可以的 

	var s Studentdb.Debug().Find(&s, "name = ?", "lucas")fmt.Println(s)[1.552ms] [rows:1] SELECT * FROM `student` WHERE name = 'lucas'              
{1 lucas 30 0xc0001c9300}  

使用结构体查询


如果是零值,那么查询的时候就不会将零值作为查询带上了 

	s = Student{Name: "lucas",Age:  30,}db.Debug().Where(&s).Find(&s)[1.543ms] [rows:1] SELECT * FROM `student` WHERE `student`.`name` = 'lucas' AND `student`.`age` = 30
http://www.lryc.cn/news/148065.html

相关文章:

  • 【LeetCode】30 天 Pandas 挑战
  • 头歌MYSQL——课后作业2 数据表中数据的插入、修改和删除
  • Maven的profiles多环境配置
  • go 协程
  • 【python爬虫案例】用python爬豆瓣读书TOP250排行榜!
  • Qt中 gui 模块和 widgets 模块的区别
  • feign调用流程
  • 15-数据结构-二叉树的遍历,递归和非递归
  • 最新绕过目标域名CDN进行信息收集技术
  • overlayfs
  • Mysql中九种索引失效场景分析
  • Android RecyclerView 之 列表宫格布局的切换
  • 妈妈的爱依然深沉
  • net.ResolveTCPAddr(“tcp6“, address)
  • mysql和mybatisPlus实现:datetime类型的字段范围查询
  • 学习笔记:用ROS接收rosbag发布的topic
  • LAMP架构介绍配置命令讲解
  • C语言之函数题
  • SpringBoot的四种handler类型
  • 基于KNN算法的鸢尾花种类预测
  • 英语-面试
  • 文件传输协议
  • Llama-2大模型本地部署研究与应用测试
  • 白嫖idea
  • PyCharm切换虚拟环境
  • 自动化运维工具-----Ansible入门详解
  • 一、Mycat2介绍与下载安装
  • 链表的介绍
  • 深度剖析:数据服务API的安全性与隐私保护
  • MediaPlayer音频与视频的播放介绍