словил непонятки. Кейс следующий:
Предположим я делаю запрос в котором вернётся точно 1 результат. COUNT/SUMM как вариант. Результат может быть 2х типов float64/int32. Пытался использовать QueryRow(q).Sccan(&value). И вот вопрос:
Если я точно не знаю возвращаемый запросом тип переменной, но при этом меня устроил бы string, как это сделать?
Судя по документации на интерфейс Scan, он должен на основании переменной что я передал, кастануть их из формата используемой БД в тот, что я передал. На деле же pgx требует конкретный тип который возвращает БД. То есть я не могу например сделать так:
var v string
errQuery := conn.Pool.QueryRow("SELECT COUNT(*) FROM mytable").Scan(&v)
Ругается на: can't scan into dest[0]: cannot assign 7 into *string
Может я как-то нетак понимаю?) Как вообще решаются подобные случаи?
Он возвращает то, что ему кажется удобным, исходя их типа поля или возвращаемого значения. Придется делать strconv.Itoa, если именно строка нужна в итоге
Постгрес? Можно явно указать тип столбца при выборке и потом делать scan в нужный тип
Обсуждают сегодня