Stmt.Query()
hat einen variadischen Parameter:
func (s *Stmt) Query(args ...interface{}) (*Rows, error)
Das bedeutet, dass Sie die Auslassungspunkte ...
verwenden können um einen Slice-Wert als Wert des variadischen Parameters zu übergeben, aber dieses Slice muss vom Typ []interface{}
sein , z. B.:
var args []interface{}
for _, v := range r.Form["type"] {
t, _ := strconv.Atoi(v)
args = append(args, t)
}
// ...
rows, err := stmt.Query(args...)
Als Alternative könnten Sie die SQL-Abfrage vorab erstellen und ausführen, ohne Abfrageargumente zu übergeben, ein Beispiel finden Sie unter Go- und IN-Klausel in Postgres .