DB Migrations (#67)
This commit is contained in:
39
vendor/github.com/go-xorm/builder/README.md
generated
vendored
39
vendor/github.com/go-xorm/builder/README.md
generated
vendored
@ -1,26 +1,47 @@
|
||||
# SQL builder
|
||||
|
||||
[](https://circleci.com/gh/go-xorm/builder/tree/master)
|
||||
[](https://gitci.cn/go-xorm/builder) [](https://codecov.io/gh/go-xorm/builder)
|
||||
[](https://goreportcard.com/report/github.com/go-xorm/builder)
|
||||
|
||||
Package builder is a lightweight and fast SQL builder for Go and XORM.
|
||||
|
||||
Make sure you have installed Go 1.1+ and then:
|
||||
Make sure you have installed Go 1.8+ and then:
|
||||
|
||||
go get github.com/go-xorm/builder
|
||||
|
||||
# Insert
|
||||
|
||||
```Go
|
||||
sql, args, err := Insert(Eq{"c": 1, "d": 2}).Into("table1").ToSQL()
|
||||
sql, args, err := builder.Insert(Eq{"c": 1, "d": 2}).Into("table1").ToSQL()
|
||||
|
||||
// INSERT INTO table1 SELECT * FROM table2
|
||||
sql, err := builder.Insert().Into("table1").Select().From("table2").ToBoundSQL()
|
||||
|
||||
// INSERT INTO table1 (a, b) SELECT b, c FROM table2
|
||||
sql, err = builder.Insert("a, b").Into("table1").Select("b, c").From("table2").ToBoundSQL()
|
||||
```
|
||||
|
||||
# Select
|
||||
|
||||
```Go
|
||||
// Simple Query
|
||||
sql, args, err := Select("c, d").From("table1").Where(Eq{"a": 1}).ToSQL()
|
||||
|
||||
// With join
|
||||
sql, args, err = Select("c, d").From("table1").LeftJoin("table2", Eq{"table1.id": 1}.And(Lt{"table2.id": 3})).
|
||||
RightJoin("table3", "table2.id = table3.tid").Where(Eq{"a": 1}).ToSQL()
|
||||
// From sub query
|
||||
sql, args, err := Select("sub.id").From(Select("c").From("table1").Where(Eq{"a": 1}), "sub").Where(Eq{"b": 1}).ToSQL()
|
||||
// From union query
|
||||
sql, args, err = Select("sub.id").From(
|
||||
Select("id").From("table1").Where(Eq{"a": 1}).Union("all", Select("id").From("table1").Where(Eq{"a": 2})),"sub").
|
||||
Where(Eq{"b": 1}).ToSQL()
|
||||
// With order by
|
||||
sql, args, err = Select("a", "b", "c").From("table1").Where(Eq{"f1": "v1", "f2": "v2"}).
|
||||
OrderBy("a ASC").ToSQL()
|
||||
// With limit.
|
||||
// Be careful! You should set up specific dialect for builder before performing a query with LIMIT
|
||||
sql, args, err = Dialect(MYSQL).Select("a", "b", "c").From("table1").OrderBy("a ASC").
|
||||
Limit(5, 10).ToSQL()
|
||||
```
|
||||
|
||||
# Update
|
||||
@ -35,6 +56,16 @@ sql, args, err := Update(Eq{"a": 2}).From("table1").Where(Eq{"a": 1}).ToSQL()
|
||||
sql, args, err := Delete(Eq{"a": 1}).From("table1").ToSQL()
|
||||
```
|
||||
|
||||
# Union
|
||||
|
||||
```Go
|
||||
sql, args, err := Select("*").From("a").Where(Eq{"status": "1"}).
|
||||
Union("all", Select("*").From("a").Where(Eq{"status": "2"})).
|
||||
Union("distinct", Select("*").From("a").Where(Eq{"status": "3"})).
|
||||
Union("", Select("*").From("a").Where(Eq{"status": "4"})).
|
||||
ToSQL()
|
||||
```
|
||||
|
||||
# Conditions
|
||||
|
||||
* `Eq` is a redefine of a map, you can give one or more conditions to `Eq`
|
||||
|
Reference in New Issue
Block a user