title: Cross-database prepared statement binding (like and where in) in Golang
body: <p>After reading many tutorials, I found that there are many ways to bind arguments on prepared statement in Go, some of them</p>
  
  <pre><code>SELECT * FROM bla WHERE x = ?col1 AND y = ?col2
  SELECT * FROM bla WHERE x = ? AND y = ?
  SELECT * FROM bla WHERE x = :col1 AND y = :col2
  SELECT * FROM bla WHERE x = $1 AND y = $2
  </code></pre>
  
  <p><strong>First question</strong>, what is the cross-database way to bind arguments? (that works on any database)</p>
  
  <p><strong>Second question</strong>, none of the tutorial I've read mention about <code>LIKE</code> statement, how to bind arguments for <code>LIKE</code>-statement correctly?</p>
  
  <pre><code>SELECT * FROM bla WHERE x LIKE /*WHAT?*/
  </code></pre>
  
  <p><strong>Third question</strong>, also none of them give an example for <code>IN</code> statement, how to bind arguments for <code>IN</code> statement correctly?</p>
  
  <pre><code>`SELECT * FROM bla WHERE x IN ( /*WHAT?*/ )
  </code></pre>