Like/gte/lte 使用 postgres 在 GORM 中查询结构

Like/gte/lte queries with struct in GORM using postgres

我有一个这样的 User 结构:

type User struct {
    Username         string `json:"username" bson:"username"`
    AuthorizationKey string `json:"authorization_key" bson:"authorization_key"`
    IsActive         bool   `json:"is_active" bson:"is_active"`
}

现在我可以使用

查询整个username
user := &User{}
if err := db.Where(&User{
    Username: username,
}).Find(&user).Error; err != nil {
    return user, err
}

并且我将此语句用于 like 查询(普通查询)

db.Where("username LIKE ?", fmt.Sprintf("%%%s%%", username)).Find(&users)

是否可以使用 like 查询结构格式的用户名字段?大于或小于呢?

我认为这是不可能的,Struct in where condition used for equal check for field (Ref)

db.Where(&User{ Username: username})

对于 Like/gte/lte 查询,您必须在 where()

中使用纯 SQL
db.Where("username LIKE ?", fmt.Sprintf("%%%s%%", username)).Find(&users)

参考here