を構造体へのようなテーブルを想像してください:短いそれを維持するにはGolang SQLスキャンストレンジネス
type Dude struct {
Firstname string
Lastname string
Fee int
Opt_out int
}
:
FirstName, LastName, Fee, Opt_Out
String String Int TinyInt(4)
、そのように構造体私はにスキャンするデータベース/ SQLを使用していますTinyIntの場合を除いて、問題のない構造体。
err = rows.Scan(&firstname, &lastname, &fee, &opt_out)
は、スキャンした後、そして私の構造体に値を割り当てる前に、I
fmt.PrintLn(Opt_out)
、彼らは常にゼロ値を返します。 SQL Serverにクエリを直接接続すると、正しいものが得られ、ゼロの値が得られます。
私は、文字列への構造体の「OPT_OUT」の種類を変更しようとした、と
IF(Opt_out=1,"yes","no")
を行うことにより、クエリ自体を経由してキャストしようとしたと同じようなことは、SQLでクエリの実行を起こっています期待される結果を返しますが、golangは空の値を返します。
私は空白を描いています。何か案は?
使用しているSQL DBとドライバは何ですか?また、個々の値を明示的にスキャンすることなく、構造体全体を 'スキャン 'するライブラリがあることにも注意してください。 – RayfenWindspear
Mariaとgo-sql-driver/mysql。私は他の場所で直接sqlstructマッピングを使用していますが、これは特殊なケースです。/ – Derek
'bool'や' boolean'型を使用しない特定の理由はありますか?あなたの質問は、あなたは0または1だけを期待していることを意味します。 – RayfenWindspear