基本查询
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(¬BobUsers)
// 添加或查询条件
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)
上面的代码中,我们分别演示了添加查询条件、添加取反查询条件、添加或查询条件、添加与查询条件、指定查询的字段、指定排序方式、指定查询的记录数量和起始位置的方法。