// Created on savesnippets.com · https://savesnippets.com/Hvqh3n0Wjif4bB package main import ( "database/sql" "fmt" ) type User struct { ID int Name string Email sql.NullString // can be NULL in the DB } func main() { var u User // After a Scan, check Valid before using String rows, _ := (*sql.DB)(nil).Query("SELECT id, name, email FROM users WHERE id = ?", 42) for rows.Next() { rows.Scan(&u.ID, &u.Name, &u.Email) if u.Email.Valid { fmt.Println("has email:", u.Email.String) } else { fmt.Println("no email") } } // Insert / update — set Valid=true to write a value, false to write NULL u.Email = sql.NullString{String: "a@x.com", Valid: true} u.Email = sql.NullString{Valid: false} // → NULL // Convert NullString to *string for JSON var emailPtr *string if u.Email.Valid { emailPtr = &u.Email.String } _ = emailPtr }