Извлечение данных из базы постгрес на Go
Посоветуйте оптимальный способ извлечь данные из базы данных Postgres 12 на go. Использую сейчас примерно такой код:
var numberoffon = 3
var yyyy string = "SELECT id, getandid, alias_ru, tarif_plan FROM tgid_" + strconv.FormatInt(update.Message.Chat.ID, 10) + " ORDER BY id DESC LIMIT " + strconv.Itoa(numberoffon)
//SELECT id, buildid, alias_ru FROM tgid_948727345 ORDER BY id DESC LIMIT 3
fmt.Println("pppp =", yyyy)
rows, err := db.Query(yyyy)
if err != nil {
log.Fatal(err)
}
products := []product{}
for rows.Next() {
p := product{}
err := rows.Scan(&p.id, &p.getandid, &p.alias_ru, &p.tarif_plan)
if err != nil {
fmt.Println(err)
continue
}
products = append(products, p)
}
var Namefon [drdr]string
fgfg := drdr
for _, p := range products {
fmt.Println("id = ", p.id, ",", "HASH= ", p.getandid, ",", "Alias = ", p.alias_ru, ",", "Tarif = ", p.tarif_plan)
fgfg = fgfg - 1
Namefon[fgfg] = p.tarif_plan //11 7 3 индексы в которых и есть данные тарифных планов
fgfg = fgfg - 1
Namefon[fgfg] = p.alias_ru // 10 6 2 здесь альясы на имена устройств
fgfg = fgfg - 1
Namefon[fgfg] = p.getandid //9 5 1 ид андройд
fgfg = fgfg - 1
Namefon[fgfg] = strconv.Itoa(p.id) //8 4 0 ид таблицы
}
Наверняка существует более оптимальный вариант добыть данные без промежуточного slice.