Вот код:
// User Model
type User struct {
UserID int `db:"user_id"`
UserNme string `db:"user_nme"`
UserEmail string `db:"user_email"`
UserAddressID sql.NullInt64 `db:"user_address_id"`
}
func (ur *userRepository) FindAll() ([]models.User, error) {
var users []models.User
query := "select user_nme from users"
err := ur.Db.Select(&users, query)
if err != nil {
return nil, err
}
return users, nil
}
Результат:
&[]models.User{models.User{UserID:0, UserNme:"Jay Durgan", UserEmail:"", UserAddressID:sql.NullInt64{Int64:0, Valid:false}}, models.User{UserID:0, UserNme:"Arne Balistreri", UserEmail:"", UserAddressID:sql.NullInt64{Int64:0, Valid:false}}, models.User{UserID:0, UserNme:"Greg Willms", UserEmail:"", UserAddressID:sql.NullInt64{Int64:0, Valid:false}}, models.User{UserID:0, UserNme:"Lady Aisha McLaughlin", UserEmail:"", UserAddressID:sql.NullInt64{Int64:0, Valid:false}}, models.User{UserID:0, UserNme:"Mrs. Phoebe Boyle", UserEmail:"", UserAddressID:sql.NullInt64{Int64:0, Valid:false}}}%
Как видите, я не запрашивал user_id
, user_email
и user_address_id
столбцов, но результат дает мне эти поля с нулевым значением.
Итак, есть ли способ получить только поля, соответствующие запрашиваемым столбцам?Кроме того, я не хочу писать это так: &user.userNme
, &user.xxx
, &user.xxx
, что означает запись каждого поля и его заполнение.Это слишком многословно.
Ожидаемый результат: {UserNme: "Jay Durgan"}
...