我有一个需要变量替换的 sql 查询,以便更好地使用我的 go-kit 服务。
我有 dep
和 org
作为用户输入,它们是我的休息服务的一部分,例如: dep = 'abc'
和 org = 'def'
。
我尝试了几件事,例如:
rows, err := db.Query(
"select name from table where department='&dep' and organisation='&org'",
)
和:
rows, err := db.Query(
"select name from table where department=? and organisation=?", dep , org,
)
这导致错误:
sql: statement expects 0 inputs; got 2
只有硬编码值有效,替换失败。
我还没有从 oracle 博客中找到太多关于此的帮助,并且想知道是否有任何方法可以解决此问题。
最佳答案
参数占位符语法(引用:http://go-database-sql.org/prepared.html)
MySQL PostgreSQL Oracle
===== ========== ======
WHERE col = ? WHERE col = $1 WHERE col = :col
VALUES(?, ?, ?) VALUES($1, $2, $3) VALUES(:val1, :val2, :val3)
对于 oracle,您需要使用 :dep、:org 作为占位符。
关于sql - Golang SQL 查询变量替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52340411/