title: Using postgres IN clause in golang
body: <p>I have been trying to use the postgres IN clause in golang, but keep getting errors. This is the query I want to execute.</p>
  
  <pre><code>SELECT id1 FROM my_table WHERE type = (an int) AND id2 = (an int) AND id1 IN (list of UUIDs)
  </code></pre>
  
  <p>I used this code to construct this query but got the following error.</p>
  
  <pre><code>var params []interface{}
  inCondition := ""
  params = append(params, type)
  params = append(params, id2)
  for _, id := range id1 {
      params = append(params, id)
      if inCondition != "" {
          inCondition += ", "
      }
      inCondition += "?"
  }
  query := fmt.Sprintf(`SELECT id1 FROM my_table WHERE type = ? AND id2 = ? AND id1 IN (%s)`, inCondition)
  rows, err := db.Query(query, params...)
  </code></pre>
  
  <p>Query I got:</p>
  
  <pre><code>SELECT id1 FROM my_table WHERE type = ? AND id2 = ? AND id1 IN (?, ?, ?)
  </code></pre>
  
  <p>Params output:</p>
  
  <pre><code>[]interface {}=[0 7545449 d323f8d5-ab97-46a3-a34e-95ceac2f3a6a d323f8d5-ab97-46a3-a34e-95ceac2f3a6b d323f8d5-ab97-46a3-a34e-95ceac2f3a6d]
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>pq: syntax error at or near \"AND\""
  </code></pre>
  
  <p>What am I missing? or, how will I get this to work? id1 is a slice of UUIDs whose length is variable.   </p>