go-ozzo / ozzo-dbx

A Go (golang) package that enhances the standard database/sql package by providing powerful data retrieval methods as well as DB-agnostic query building capabilities.
MIT License
636 stars 91 forks source link

[Advice] Chaining and Queries #88

Open euca01 opened 4 years ago

euca01 commented 4 years ago

Hi :),

I would like to chain a query though function. For example, i've :

err := db.Select("name").
    From("users").
    Where(dbx.HashExp{"UserId": 1}).
    One(&user)

And i would like to have something like that :

func ScopeByUserId( uID int ) {
    return Where(dbx.HashExp{"UserId": 1})
}

err := db.Select("name").
    From("users").
    ScopeByUserId( uID int ) .
    One(&user)

The idea is to be able to reuse the code. Is there a best pratice or advices for doing it ?

Thanks a lot for your help :)