gorm 使用struct作为where条件时,会根据结构体中的字段和值自动生成and连接的查询条件。如果需要使用or连接条件,可以使用gorm提供的Or方法。例如:
type User struct {
Name string
Age uint
IsMale bool
}
db.Where(&User{Name: "Alice", Age: 18}).Or(&User{IsMale: true}).Find(&users)
这个查询会生成类似于下面的SQL语句:
SELECT * FROM users WHERE (name = 'Alice' AND age = 18) OR is_male = true;
可以看到,其中的两个where条件被自动连接成了and条件,而通过Or方法指定的条件则与前面的条件用or连接。