如何在Golang中使用多个值进行SQL查询的WHERE子句?

4

我想使用sql库在Golang中执行以下类型的查询:

    rows, err := db.Query("select * from someTable where age = ? and hairColor = ?", age,haircolor)

但是会收到以下类型的错误:

    Error occured: sql: expected 1 arguments, got 2

如何在Golang中执行带有多个值的WHERE子句的SQL SELECT语句?


你使用的是哪个数据库? - leaf bebop
数据库/SQL和MySQL。 - Ryan McDermott
1个回答

2

答案是使用预处理语句,所以在我的示例中:

stmt, err := db.Prepare("select * from someTable where age = ? and hairColor = ?")
rows, err := stmt.Query(age,hairColor)

这在回顾时似乎很明显。希望这能为未来节省一些时间和烦恼!


2
这看起来并不明显,即使回想起来也是如此。无论如何,使用“Prepare”只是为了能够传递多个参数是不必要的。要么您收到的原始错误不是来自您显示的查询+参数,要么您正在使用一些损坏/非常规的驱动程序。 - mkopriva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接