gorm查询
01 基本查询
- 获取第一条数据
按主键排序
DB.First(&book)
package mian
func main(){
var book Book
data := DB.First(&book, "id=? and name=?", 3, "圣墟")
// data := DB.First(&book, 1) 数字是类型是主键时,意识是id为1
fmt.Println(data)
}
- 不指定排序获取一条数据
DB.Take()
package mian
func main(){
var book Book
data := DB.Take(&book, "id=? and name=?", 3, "圣墟")
fmt.Println(data)
}
- 获取最后一条数据
DB.Last()
package mian
func main(){
var book Book
data := DB.Last(&book, "name like ?", "%传%")
fmt.Println(data)
}
- 查询多条数据
DB.Find(&books)
:注意参数是切片的指针
package mian
func main(){
var book []Book
DB.Find(&book)
fmt.Println(book)
num := data.RowsAffected // 数据的条数
dataBook := data.Value // 和book一样
fmt.Println(num)
fmt.Println(dataBook)
}
02 where
原生sql
- 获取第一条匹配记录
package mian
func main(){
var book Book
DB.Where("name=?", "完美世界").First(&book)
fmt.Println(book)
}
- 获取所有数据
package mian
func main(){
var book []Book
DB.Where("name=?", "完美世界").Find(&book)
// 不等于 <>
// DB.Where("name <>?", "完美世界").Find(&book)
// 包含 in
// DB.Where("name in (?)", []string{"完美世界", "圣墟"}).Find(&book)
// 模糊查询 like
// DB.Where("name like ?", "%完美%").Find(&book)
fmt.Println(book)
}