如何使用 sqlx 执行原始查询?

How to execute raw queries using sqlx?

使用 sqlx 作为我的数据库适配器,我想 运行 根据用户提交的 POST 数据查询用户配置文件。有几个参数,例如 agesexlocation 等等。

例如,如果用户仅提交 age 值,则查询应如下所示:

var profiles []model.Profile
q:= "SELECT *  FROM profile WHERE age = ?"
err = database.SQL.Select(&profiles, q, age)
if err != nil {
    log.Println(err)
} 

如您所见,由于无法动态构建查询,因此此方法不够灵活,并且变得过于冗长以说明所有可能的变化。

我想要的是基于输入数据构建查询,然后将原始查询提供给 sqlx。

类似这样的伪代码:

q:= `SELECT *  FROM profile WHERE 
      age > 25   AND sex="f" AND location="London"`
    err = database.SQL.ExecRaw(&profiles, q)

我如何在 sqlx 中实现这个?
我看过文档,但不知道该怎么做。

不想用参数就别用参数。 Select 不会阻止您在查询中输入文字。