繁体   English   中英

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

[英]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 条件用于对字段进行相等检查( Ref

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

对于Like/gte/lte查询,您必须在where()中使用普通的 SQL

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

参考这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM