Используя 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?
Я посмотрел документы, но не смог понять, как это сделать.