Stmt.Query()
heeft een variadische parameter:
func (s *Stmt) Query(args ...interface{}) (*Rows, error)
Dit betekent dat u het weglatingsteken ...
. kunt gebruiken om een slice-waarde door te geven als de waarde van de variadische parameter, maar die slice moet van het type []interface{}
zijn , bijv.:
var args []interface{}
for _, v := range r.Form["type"] {
t, _ := strconv.Atoi(v)
args = append(args, t)
}
// ...
rows, err := stmt.Query(args...)
Als alternatief kunt u de SQL-query vooraf samenstellen en uitvoeren zonder queryargumenten door te geven, zie bijvoorbeeld Go en IN-clausule in Postgres .