Stmt.Query()
ha un parametro variadico:
func (s *Stmt) Query(args ...interface{}) (*Rows, error)
Ciò significa che puoi usare i puntini di sospensione ...
per passare un valore di slice come valore del parametro variadic, ma tale slice deve essere di tipo []interface{}
, ad esempio:
var args []interface{}
for _, v := range r.Form["type"] {
t, _ := strconv.Atoi(v)
args = append(args, t)
}
// ...
rows, err := stmt.Query(args...)
In alternativa, è possibile precompilare la query SQL ed eseguirla senza passare argomenti di query, ad esempio vedere Clausola Go e IN in Postgres .