Извлечение данных из базы постгрес на 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.


Ответы (0 шт):