使用 postgres 在 GORM 中使用 struct 进行 Like/gte/lte 查询

我有一个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结构格式的用户名字段查询?大于还是小于呢?


偶然的你
浏览 318回答 1
1回答

LEATH

我认为这是不可能的, Struct in where 条件用于对字段进行相等检查(Ref)db.Where(&User{ Username: username})对于Like/gte/lte查询,您必须在里面使用纯 SQLwhere()db.Where("username LIKE ?", fmt.Sprintf("%%%s%%", username)).Find(&users)参考这里
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go