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)
}
posted @ 2021-03-15 10:37  tianzhh_lynn  阅读(453)  评论(0编辑  收藏  举报