Sobes.tech

Golang

Sorğu 84-cü sətirdəki WITH ... AS (...) quruluşunun adı nədir?

146

İş performansı baxımından, belə bir verilənlər bazası sxeminə hansı ümumi qəbul edilmiş qaydalar tətbiq edilməlidir?

141

Go inkişafçıları niyə map üzərində range zamanı gəzinti sırasını təmin etmir?

134

-- ID-ə görə sıralanmış kitabların siyahısını çıxarın, -- amma çıxışda 2 və 3-cü sətirləri yer dəyişdirin: -- 1 Usta və Margarita 100 -- 3 Qızıl Telenok 50 -- 2 On İki Stul 200 -- 4 Yevgeni Onegin 250 -- 5 Belkinin hekayələri 90 -- 6 Üç musketçi 60

131

// GetUsersList istifadəçi siyahısını qaytarır. (Verilənlər bazasında təxminən 1 milyon istifadəçi saxlanılır) // İdarə panelində istifadəçi siyahısını göstərmək üçün istifadə olunur. Əgər isActive = true isə, yalnız aktiv istifadəçilər qaytarılır. 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("istifadəçi siyahısını əldə edərkən xəta") } var users []User // İstifadəçilər haqqında məlumatları doldurun. for rows.Next() { var user User err := rows.Scan(&user.ID, &user.Name, &user.Phone) if err != nil { return nil, err } // İstifadəçinin e-poçt siyahısını alın err, err := u.DB.QueryContext(ctx, "SELECT email FROM user_emails WHERE user_id = ?", user.ID) if err != nil { return nil, errors.New("istifadəçi siyahısını əldə edərkən xəta") } 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-dən profil məlumatlarını alın profile, err := getUserProfileFromVkApiByUserPhone(user.Phone) if err != nil { return nil, errors.New("istifadəçi siyahısını əldə edərkən xəta") } user.Profile = profile users = append(users, user) } if err = rows.Err(); err != nil { return nil, errors.New("istifadəçi siyahısını əldə edərkən xəta") } }

117
/2