postgresql - 使用Postgres在GORM中使用struct的like/gte/lte查询

标签 postgresql go orm go-gorm

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

db.Where(&User{ Username: username})
对于Like/gte/lte查询,您必须在where()内使用普通SQL
db.Where("username LIKE ?", fmt.Sprintf("%%%s%%", username)).Find(&users)
引用here

关于postgresql - 使用Postgres在GORM中使用struct的like/gte/lte查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62726743/

相关文章:

postgresql - 带变量的 postgresQL 函数

golang API 接口(interface),我缺少什么?

go - 依赖于 perl & sh 吗?

java - 如果我使用 myBatis 从几乎相同的表中提取时如何删除大量重复代码

orm - Laravel 4 和 Eloquent : retrieving all records and all related records

java - 与 PostgresQL 9 并行运行 3 个大型选择调用是否值得?

java - 参数化查询 : Check if field is in array of values in SELECT statement

bash - 运行 SQL 时 Bash 中的 `<<-EOSQL` 代码块是什么?

image - 如何在golang中将白色背景更改为透明?

java - 线程中出现异常 "main"java.util.ServiceConfigurationError