gorm Attrs查询
时间: 2024-01-05 20:03:45 浏览: 218
Grails GORM查询.pdf
在 GORM 中,Attrs 方法用于将结构体中的字段作为查询条件,生成 SQL 语句中的 WHERE 子句。这个方法可以在查询之前调用,以指定查询条件。
例如,假设我们有一个 User 结构体:
```go
type User struct {
ID uint
Name string
Email string
}
```
我们可以使用 Attrs 方法指定查询条件,如下所示:
```go
var users []User
db.Where("age > ?", 18).Attrs(User{Name: "jinzhu", Email: "jinzhu@example.org"}).Find(&users)
```
在上面的示例中,我们使用 Attrs 方法将 User 结构体中的 Name 和 Email 字段作为查询条件,生成 SQL 语句中的 WHERE 子句。
如果我们希望在查询中使用多个条件,可以使用多个 Attrs 方法。例如:
```go
db.Where("age > ?", 18).Attrs(User{Name: "jinzhu"}).Attrs(User{Email: "jinzhu@example.org"}).Find(&users)
```
这将生成一个包含两个条件的 WHERE 子句。注意,如果多个 Attrs 方法中有相同的字段,最后一个方法中的值将覆盖前面的值。
另外,如果我们希望在查询中排除某些字段,可以使用 Omit 方法。例如:
```go
db.Where("age > ?", 18).Attrs(User{Name: "jinzhu"}).Omit("Email").Find(&users)
```
这将生成一个包含两个条件的 WHERE 子句,并排除 Email 字段。
阅读全文