首页 > 解决方案 > GORM 中用于构建子句的 sql.Named 参数

问题描述

我正在使用 GORM 来查询数据库:

query := `
    SELECT *
    ...
    ORDER BY col @colOrder`
result := DB.Raw(
    query,
    sql.Named("colOrder", "ASC"),
)

我从数据库中收到语法错误,因为sql.Named将“ASC”转换为字符串:

SELECT *
...
ORDER BY col 'ASC'

我怎样才能让 GORM 将其解释为:

SELECT * 
...
ORDER BY col ASC

标签: gogo-gormgo-gin

解决方案


根据文档,自定义订购可以这样完成:

query := `
    SELECT *
    ...
    FROM table`
result := DB.Raw(query).Order("col ASC")

推荐阅读