Stmt.Query()
a un paramètre variadique :
func (s *Stmt) Query(args ...interface{}) (*Rows, error)
Cela signifie que vous pouvez utiliser les points de suspension ...
pour passer une valeur de tranche comme valeur du paramètre variadique, mais cette tranche doit être de type []interface{}
, par exemple :
var args []interface{}
for _, v := range r.Form["type"] {
t, _ := strconv.Atoi(v)
args = append(args, t)
}
// ...
rows, err := stmt.Query(args...)
Comme alternative, vous pouvez pré-construire la requête SQL et l'exécuter sans passer d'arguments de requête, pour un exemple voir Clause Go et IN dans Postgres .