sql.Null типы и указатели в Go при сканировании.

Ответ

NULL в БД нужно сканировать в тип, допускающий отсутствие значения: sql.NullString, sql.NullInt64, sql.NullTime и т.д., или указатель *string, *int. NullString имеет Valid и String; при Valid=true использовать String. Указатели проще в коде (nil при NULL); при маршалинге в JSON nil даст null. Выбор по удобству и соглашениям проекта.

var name sql.NullString
row.Scan(&name)
if name.Valid { use(name.String) }
// или
var name *string
row.Scan(&name)
if name != nil { use(*name) }
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.