Gorm-常见查询操作(一)

2023-04-24 19:46:25 浏览数 (1)

基本查询

GORM 支持多种基本的查询方法,例如:

  • First:返回符合条件的第一条记录。
  • Last:返回符合条件的最后一条记录。
  • Find:返回符合条件的所有记录。
  • Take:随机返回符合条件的一条记录。

下面是一个示例,演示如何使用这些方法进行基本查询:

代码语言:javascript复制
// 查询指定 ID 的记录
var user User
db.First(&user, 1)

// 查询符合条件的所有记录
var users []User
db.Find(&users, "name = ?", "Alice")

// 随机返回一条记录
var randomUser User
db.Take(&randomUser, "email LIKE ?", "%example.com")

// 返回符合条件的第一条记录
var firstUser User
db.Where("name LIKE ?", "B%").First(&firstUser)

// 返回符合条件的最后一条记录
var lastUser User
db.Where("name LIKE ?", "%z").Last(&lastUser)

上面的代码中,我们分别演示了通过 ID 查询记录、查询符合条件的所有记录、随机返回一条记录、返回符合条件的第一条记录、返回符合条件的最后一条记录的方法。

条件查询

GORM 提供了多种条件查询方法,例如:

  • Where:添加查询条件。
  • Not:添加取反查询条件。
  • Or:添加或查询条件。
  • And:添加与查询条件。
  • Select:指定查询的字段。
  • Order:指定排序方式。
  • Limit:指定查询的记录数量。
  • Offset:指定查询的起始位置。

下面是一个示例,演示如何使用这些方法进行条件查询:

代码语言:javascript复制
// 添加查询条件
var user User
db.Where("name = ?", "Bob").First(&user)

// 添加取反查询条件
var notBobUsers []User
db.Not("name = ?", "Bob").Find(&notBobUsers)

// 添加或查询条件
var orUsers []User
db.Where("name LIKE ?", "%A%").Or("email LIKE ?", "%example.com").Find(&orUsers)

// 添加与查询条件
var andUsers []User
db.Where("name LIKE ?", "%A%").Where("email LIKE ?", "%example.com").Find(&andUsers)

// 指定查询的字段
var selectedUsers []User
db.Select("name, email").Find(&selectedUsers)

// 指定排序方式
var orderedUsers []User
db.Order("name desc").Find(&orderedUsers)

// 指定查询的记录数量和起始位置
var limitedUsers []User
db.Limit(10).Offset(20).Find(&limitedUsers)

上面的代码中,我们分别演示了添加查询条件、添加取反查询条件、添加或查询条件、添加与查询条件、指定查询的字段、指定排序方式、指定查询的记录数量和起始位置的方法。

go

0 人点赞