go get -u github.com/LineoIT/sqlb
package main
import (
"github.com/LineoIT/sqlb"
)
func main() {
// Example 1
q := *sqlb.Select("*").
From("users").
Where(sqlb.In("age", []string{"76", "80"})).
Or("email", "aaa@ajks.com").
Where(sqlb.Between("salary", []float64{5000, 5900})).
Or(sqlb.NotIn("role", []string{"admin", "driver"})).
GroupBy("id", "age").
Having(sqlb.NotEq("email", "aaa@ajks.com")).
Or(sqlb.NotIn("item", []int{0, 1})).
Limit(90).
Offset(7).
OrderBy("id").
Build()
}
# output
select * from users where age in (76,80) or email aaa@ajks.com and salary between 5000 and 5900 or role not in (admin,driver) group by id,age having email <> aaa@ajks.com or item not in (0,760) order by id limit 90 offset 7;
// Example 2
q := *sqlb.SQL("select * from users").
Where(sqlb.In("age", []string{"76", "80"})).
Or("email", "aaa@ajks.com").
Where(sqlb.Between("salary", []float64{5000, 5900})).
Or(sqlb.NotIn("role", []string{"admin", "driver"})).
GroupBy("id", "age").
Having(sqlb.NotEq("email", "aaa@ajks.com")).
Or(sqlb.NotIn("item", []int{0, 1})).
Limit(90).
Offset(7).
OrderBy("id").
Build()
# output
select * from users where age in (76,80) or email aaa@ajks.com and salary between 5000 and 5900 or role not in (admin,driver) group by id,age having email <> aaa@ajks.com or item not in (0,760) order by id limit 90 offset 7;
q := sqlb.Insert("users").Value("email", "mail@example.com").
Value("age", 10).
Return("id").
Build()
# output
insert into users (email,age) values(mail@example.com,10) returning id
q := sqlb.Update("users").Set("email", "mail@example.com").
Set("age", 10).
Where("id", 2).
Or(sqlb.NotIn("item", []int{0, 1})).
Return("updated_at").
Build()
# output
update users set email=mail@example.com,age=10 where id=2 or item not in (0,1) returning updated_at;
q := sqlb.Delete("users").
Where("id", 2).
Or(sqlb.NotIn("item", []int{0, 1})).
Build()
# output
delete from users where id=2 or item not in (0,1);
- Select
- From
- SQL
- Build
- Stmt
- Error
- Args
- Where
- Or
- Having
- GroupBy
- OrderBy
- Offset
- Limit
- Sort
- Take
- Raw
- Coalesce
- Nullif
- Equal
- NotEqual
- In
- NotIn
- Between
- IsNull
- IsNotNull
- Is
- IsNot
- Like
- Ilike
- Expression
- Greater
- GreaterOrEqual
- Less
- Debug
- CleanSQL