登录
首页 >  Golang >  Go问答

将 PostgreSQL 查询翻译为 GORM 查询

来源:stackoverflow

时间:2024-03-25 12:18:30 385浏览 收藏

如何将 SQL 查询翻译为 GORM 查询?本文探讨了将 PostgreSQL 中的文本搜索查询转换为 GORM 中等效查询的方法。在 PostgreSQL 中,可以使用 `@@` 运算符执行文本搜索,但 GORM 并未提供直接支持。因此,作者建议使用 `.raw()` 方法执行原始 SQL 查询,如下所示: ```go db.Raw("SELECT id, name, age FROM users WHERE name = ?", 3).Scan(&result) ```

问题内容

如何将以下 sql 查询转换为 gorm?

select * from files where tsv @@ plainto_tsquery('lexeme word');

或者等效的:

select * from files, plainto_tsquery('lexeme word') q where tsv @@ q;

我可以使用 .exec():

err := d.Connection.DB.Exec("SELECT * FROM scenes WHERE tsv @@ plainto_tsquery(?);",text).Error
if err != nil {
    return nil, err
}

此查询不允许我获取数据数组并使用它。 不幸的是,我无法使用 gorm 文档找到解决方案。


解决方案


使用 .raw() 进行原始 sql 查询

db.Raw("SELECT id, name, age FROM users WHERE name = ?", 3).Scan(&result)

关于原始sql查询的官方doc

终于介绍完啦!小伙伴们,这篇关于《将 PostgreSQL 查询翻译为 GORM 查询》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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