当前位置: 首页 > 面试题库 >

Golang SQL查询变量替代

皮献
2023-03-14
问题内容

我有需要变量替换以更好地使用Go-kit服务的sql查询。

我有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:

MySQL               PostgreSQL            Oracle
=====               ==========            ====== 
WHERE col = ?       WHERE col = $1        WHERE col = :col 
VALUES(?, ?, ?)     VALUES($1, $2, $3)    VALUES(:val1, :val2, :val3)

对于oracle,您需要使用:dep,:org作为占位符。



 类似资料:
  • 操作步骤: 菜单栏: Refactor —> Replace Temp with Query...

  • “新”工具Oracle SQLcl未解释” 预期的答案是:(使用sqlplus)

  • 我正在编写一个Fast API服务器,它接受请求,检查用户是否被授权,如果成功,则将其重定向到另一个URL。 我需要携带URL参数,例如

  • 问题内容: 这不起作用。任何提示或技巧都将不胜感激。 问题答案: 您需要准备好的声明,请查看本教程。

  • 问题内容: 当前在ES5中,我们许多人在框架中使用以下模式来创建类和类变量,这很方便: 在ES6中,您可以本机创建类,但是没有选择可以使用类变量: 可悲的是,上述方法不起作用,因为类只能包含方法。 我知道我可以在…但我不想“垃圾”我的构造,特别是当我有一个更大的类20-30 +参数。 我在考虑解决该问题的多种方法,但尚未找到任何好的方法。(例如:创建一个处理程序,并传递一个与类分开声明的对象。然后

  • 问题内容: 有什么办法可以将mysql结果存储在php变量中?谢谢 然后我要从查询中打印选定的用户ID。 问题答案: 当然有。签出,以及是否使用MySQL。 PHP手册中的 示例: