2017-03-29 1 views
0

SQLデータベースから1行をフェッチします。次のコードを使用します:Golang QueryRow()。行が存在しない場合、Scan()はエラーを返します。

var name string 
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;") 
err := row.Scan(&name) 

if err != nil { 
    // log the error 
} 

たとえば、id = 2のユーザーが存在しない場合、「スキャン」エラーが返されます。それは絶対的な流れであり、私はそのようなエラーを記録したくないので、行が存在しない場合、エラーを生成しない方法がありますか?

私が見つけた唯一の方法ではなくQueryRowのクエリを使用することですが、私はrows.Nextためを追加する必要がありますようにはとても便利ではありません(){私は、単一の行をフェッチするたびに。

ありがとうございます。

答えて

2

ロギングする前にログインしたくないだけでエラーをチェック:

var name string 
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;") 
err := row.Scan(&name) 

if err != nil && err != sql.ErrNoRows { 
    // log the error 
} 
関連する問題