登录
首页 >  Golang >  Go问答

在 GORM 中使用结构和 PostgreSQL 来进行模糊匹配、大于等于和小于等于查询

来源:stackoverflow

时间:2024-03-03 17:33:26 384浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《在 GORM 中使用结构和 PostgreSQL 来进行模糊匹配、大于等于和小于等于查询》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我有一个像这样的 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)

参考号here

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>