Stmt.Query()
har en variadisk parameter:
func (s *Stmt) Query(args ...interface{}) (*Rows, error)
Det betyder, at du kan bruge ellipsen ...
at sende en udsnitsværdi som værdien af den variadiske parameter, men den udsnit skal være af typen []interface{}
, f.eks.:
var args []interface{}
for _, v := range r.Form["type"] {
t, _ := strconv.Atoi(v)
args = append(args, t)
}
// ...
rows, err := stmt.Query(args...)
Som et alternativ kan du forudbygge SQL-forespørgslen og udføre uden at sende forespørgselsargumenter. Se for eksempel Gå og IN-klausul i Postgres .