Sobes.tech

Суроо 84-чи сапта турган WITH ... AS (...) курулушу кандай аталат?

146

Иштөө көрсөткүчүн, мындай маалыматтар базасы схемасына кайсы жалпы кабыл алынган эрежелер колдонулушу керек?

141

Неге Go иштеп чыгуучулары map аркылуу өтүүнүн тартибин кепилдебейт?

134

-- китептер тизмесин id боюнча сорттоп чыгарыңыз, -- бирок чыгышта 2 жана 3-чи саптарды орду менен алмаштырыңыз: -- 1 Устаз жана Маргарита 100 -- 3 Алтын Теленоқ 50 -- 2 Он эки отургуч 200 -- 4 Евгений Онегин 250 -- 5 Белкиндин окуялары 90 -- 6 Үч мушкетерлер 60

131

// GetUsersList колдонуучулардын тизмесин кайтарат. (Маалыматтар базасында болжол менен 1 миллион колдонуучу сакталат) // Административдик панелде колдонуучулардын тизмесин көрсөтүү үчүн колдонулат. Эгер isActive = true болсо, only активдүү колдонуучулар кайтарылат. 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("колдонуучулардын тизмесин алуудө ката") } var users []User // Колдонуучулар тууралуу маалыматтарды толтуруңуз. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // Колдонуучунун электрондук почта тизмесин алыңыз err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("колдонуучулардын тизмесин алуудө ката") } 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 // VK API'сынан профилдик маалыматтарды алыңыз profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("колдонуучулардын тизмесин алуудө ката") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("колдонуучулардын тизмесин алуудө ката") } }

117
/2