Mysql
 sql >> база данни >  >> RDS >> Mysql

Golang MySQL заявка за недефинирано количество аргументи, използвайки IN оператор

Stmt.Query() има променлив параметър:

func (s *Stmt) Query(args ...interface{}) (*Rows, error)

Това означава, че можете да използвате многоточия ... за да предаде стойност на срез като стойност на променливия параметър, но този срез трябва да е от тип []interface{} , напр.:

var args []interface{}
for _, v := range r.Form["type"] {
    t, _ := strconv.Atoi(v)
    args = append(args, t)
}

// ...

rows, err := stmt.Query(args...)

Като алтернатива можете да създадете предварително SQL заявката и да я изпълните, без да предавате аргументи на заявката, за пример вижте Клауза Go и IN в Postgres .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате променливата на контролера във Views + cakephp

  2. PHP strtotime():дата, показваща '1970-01-01 ' след преобразуване

  3. Как да направите вътрешно присъединяване в django?

  4. Може ли външен ключ да препраща към неуникален индекс?

  5. Имам ли нужда от htmlentities() или htmlspecialchars() в подготвените оператори?