title: QueryRow().Scan() returns error if row doesn't exist
body: <p>I want to fetch one row from an sql database. I use the following code:</p>
  
  <pre><code>var name string
  row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;")
  err := row.Scan(&amp;name)
  
  if err != nil {
      // log the error
  }
  </code></pre>
  
  <p>For example: if a user with <code>id=2</code> doesn't exist, then the method <code>Scan</code> returns an error. </p>
  
  <p><strong>Question:</strong></p>
  
  <p>Is there a way to avoid this error when a row doesn't exist? Because it's absolutely normal and I don't want to log such errors.</p>
  
  <p>The only way I found is to use <code>Query</code> instead of <code>QueryRow</code>, but it is not convenient because I have to add <code>for rows.Next() { ..</code> every time when I want to fetch single row.</p>