2016-10-17 5 views
2

私は最近、GolangのSQL NULL値に苦労しています。文字列ポインタを使用したソリューションは、デコード()とnilの値で完璧に動作するようですGo:* stringとsql.NullStringの違い

Assigning null to JSON fields instead of empty strings in Golang

Decode()sql.NullStringを使用して失敗したアンマーシャリングJSONオブジェクトにしようとした後、私はStackOverflowの上でこの答えに来ました。したがって、sql.NullString*stringの違いは何ですか? それはちょうどゼロチェックについてですか?

+0

sqlからのNULLはGo nilと同じではありません。 [NullString](https://golang.org/pkg/database/sql/#NullString)を見てください。 –

答えて

3

SQLにはGolangとは異なるnull値があります。

あなたがsql.NullStringの定義を見れば、これはあなたが得るものです:あなたが見ることができるように

type NullString struct { 
    String string 
    Valid bool // Valid is true if String is not NULL 
} 

sql.NullStringは(「NULL」に相当)SQLからヌル文字列を表現する方法です。 一方、nil *stringは、文字列へのポインタで、nilなので、2つは異なっています。

関連する問題