我有一个需要变量替换的 sql 查询,以便更好地使用我的 go-kit 服务。

我有 deporg 作为用户输入,它们是我的休息服务的一部分,例如: 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/

10-14 05:15