Kaip vadinama konstrukcija WITH ... AS (...) užklausoje 84 eilutėje?
Golang
Veiklos efektyvumo požiūriu, kokias bendras priimtinas taisykles reikėtų taikyti tokiam duomenų bazės schemai?
Kodėl „Go“ kūrėjai negarantuoja žemėlapio apėjimo tvarkos range metu?
-- išveskite knygų sąrašą, surūšiuotą pagal id, -- bet išvestyje sukeiskite 2 ir 3 eilutes vietomis: -- 1 Meistras ir Margarita 100 -- 3 Auksinis Telenok 50 -- 2 Dvylika kėdžių 200 -- 4 Eugenius Onegin 250 -- 5 Belkin pasakojimai 90 -- 6 Trys muškietieriai 60
// GetUsersList grąžina naudotojų sąrašą. (duomenų bazėje saugoma apie 1 milijoną naudotojų) // Naudojama naudotojų sąrašo rodymui administratoriaus panelėje. Jei isActive = true, grąžinami tik aktyvūs naudotojai. func (u *UsersRepo) GetUsersList(ctx context.Context, isActive bool) ([]User, error) { rows, err := u.DB.Query("SELECT id, name, phone FROM users WHERE is_active = ?", isActive) if err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } var users []User // Užpildykite naudotojų informaciją. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Gaukite naudotojo el. pašto sąrašą err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } var emails []string for er.Next() { var email string err := rows.Scan(&email) if err != nil { return nil, err } emails = append(emails, email) } if len(emails) != 0 { for i, e := range emails { e = strings.ToLower(e) emails[i] = e } } user.Emails = emails // Gaukite profilio informaciją iš VK API profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("klaida gaunant naudotojų sąrašą") } }