如何使用 sqlx 执行原始查询?
How to execute raw queries using sqlx?
使用 sqlx 作为我的数据库适配器,我想 运行 根据用户提交的 POST 数据查询用户配置文件。有几个参数,例如 age
、sex
和 location
等等。
例如,如果用户仅提交 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 不会阻止您在查询中输入文字。
使用 sqlx 作为我的数据库适配器,我想 运行 根据用户提交的 POST 数据查询用户配置文件。有几个参数,例如 age
、sex
和 location
等等。
例如,如果用户仅提交 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 不会阻止您在查询中输入文字。