gpt4 book ai didi

postgresql - 通过其pq.StringArray属性查询GORM数据库

转载 作者:行者123 更新时间:2023-12-01 21:10:14 32 4
gpt4 key购买 nike

我有以下gorm.Model,我想查询我的Postgres数据库以返回在其.Categories属性中具有特定类别的Confessions,但是我不知道如何在pq.StringArray中进行查询。有解决方法吗?

type Confession struct {
gorm.Model
User string `json:"User"`
Title string `json:"Title"`
Body string `json:"Body"`
Mood string `json:"Mood"`
Categories pq.StringArray `gorm:"type:varchar(64)[]" json:"Categories"`
}

这就是我尝试查询的方式,但是使用LIKE运算符会引发错误。
if categories != nil {
for _, cat := range categories {
tx = tx.Where("Categories LIKE ?", "%"+cat+"%")
}
}

最佳答案

使用<@包含数组。您可以使用Query*sql.DB函数进行查询,并在gorm中使用*sql.DB获取tx.DB()

sel := "SELECT * FROM confessions WHERE $1 <@ categories"
categories := []string{"cat1", "cat2"}
rows, err := tx.DB().Query(sel, pq.Array(categories))

或者尝试 Gorm Raw SQL,但是我不确定它是否可以正确地用于数组函数。

引用:
  • PostgreSQL数组函数here
  • 在Golang中使用ProtgreSQL数组here
  • 关于postgresql - 通过其pq.StringArray属性查询GORM数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62047975/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com