Newmo
@Newmo

Как результат типа sql.Result перевести в строку?

Получаю значение из базы:
maxvalue, err := db.Exec("SELECT MAX(points) FROM items")

Как результат перевести в строку, что бы присвоить его переменной?

Сейчас естественно получаю такую ошибку, при присвоении:
cannot use maxvalue (type sql.Result) as type string in assignment


Возможно я что-то не то делаю? Мне требуется достать максимальное значение в столбце и передать его в переменной на шаблон в структуре Data:
t.ExecuteTemplate(w, "single", Data)
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
Вы не ту функцию используете. Exec нужен чтобы выполнить запрос, который ничего не возвращает.
Вам нужно Query
И лучше это все вынести в отдельную функцию, чтобы использовать defer
func GetMaxPoints(db *sql.DB) (int64, error) {
	rows, err := db.Query(`SELECT MAX(points) FROM items`)
	if err != nil {
		return 0, err
	}
	defer rows.Close()
	rows.Next()
	var maxPoints int64
	err = rows.Scan(&maxPoints)
	return maxPoints, err
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
resultStr := maxvalue.(string)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы