Skip to content

Commit

Permalink
doc
Browse files Browse the repository at this point in the history
  • Loading branch information
fizzday committed Apr 3, 2024
1 parent 4f735d4 commit 1881c42
Showing 1 changed file with 46 additions and 15 deletions.
61 changes: 46 additions & 15 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ func (User) TableName() string {
return "users"
}

var gr = gorose.Open("mysql", "root:123456@tcp(localhost:3306)/test?charset=utf8mb4&parseTime=true")
var rose = gorose.Open("mysql", "root:123456@tcp(localhost:3306)/test?charset=utf8mb4&parseTime=true")

func db() *gorose.Database {
return gr.NewDatabase()
return rose.NewDatabase()
}
func main() {
// select id,name,email from users limit 1;
Expand Down Expand Up @@ -201,17 +201,20 @@ db().Table(sub).Where("id", ">", 1).Get()
```

## join
```go
type UserInfo struct {
UserId int64 `db:"user_id"`
TableName string `db:"user_info"`
}
```

- 简单用法
```go
db().Table("users").Join(UserInfo{}, "user.id", "=", "user_info.user_id").Get()
```

- 取别名
```go
type UserInfo struct {
UserId int64 `db:"user_id"`
TableName string `db:"user_info"`
}
// select * from users a inner join user_info b on a.id=b.user_id
db().Table("users", "u").Join(gorose.As(UserInfo{}, "b"), "u.id", "=", "b.user_id").Get()
// 等同于
Expand All @@ -226,38 +229,56 @@ db().Table("users").Join(UserInfo{}, func(wh gorose.IJoinOn) {
}).Get()
```

## where
- sub query
## where sub
```go
// where id in (select user_id from user_info)
sub := db().Table("user_info").Select("user_id")
xxx.Where("id", "in", sub).Get()
db().Table(User{}).Where("id", "in", sub).Get()
```
- where sub query
```go
// where id in (select user_id from user_info)
db().Table(User{}).WhereSub("id", "in", func(tx *gorose.Context) {
tx.Table("user_info").Select("user_id")
}).Get()
```
- where sub builder
```go
// where id in (select user_id from user_info)
sub := db().Table("user_info").Select("user_id")
db().Table(User{}).WhereBuilder("id", "in", sub).Get()
```
以上3种用法等同

- where nested
## where nested
```go
// where id>1 and (sex=1 or sex=2)
xxx.Where("id",">", 1).Where(func(wh gorose.IWhere) {
db().Table(User{}).Where("id",">", 1).Where(func(wh gorose.IWhere) {
wh.Where("sex", 1).OrWhere("sex", 2)
})
```
```go
// where id>1 and (sex=1 or sex=2)
db().Table(User{}).Where("id",">", 1).WhereNested(func(wh gorose.IWhere) {
wh.Where("sex", 1).OrWhere("sex", 2)
})
```
以上两种用法等同

## Pluck
返回两列数据到一个map中,第一列为value,第二列为key
```go
// select id,name from users
db().Table("users").Pluck("name", "id")
// 返回 map[<id>]<name>
// 得到 map[int64]string{1: "张三", 2: "李四"}
// 返回 map[<id>]<name>, 实际得到 map[int64]string{1: "张三", 2: "李四"}
```

## List
返回一列数据到一个数组中
```go
// select id,name from users
db().Table("users").List("id")
// 返回 []<id>
// 得到 []int64{1,2,3}
// 返回 []<id>, 实际得到 []int64{1,2,3}
```

## To 查询结果绑定到对象
Expand Down Expand Up @@ -319,6 +340,8 @@ var min int
db().Table("users").MinTo("age", &min)
```

## 日志
默认采用 官方库的 slog debug level, 如果不想显示sql日志, 只需要设置slog的level到debug以上即可, 如: Info, Warn, Error

## 已经支持的 laravel query builder 方法
- [x] Table
Expand Down Expand Up @@ -395,6 +418,14 @@ db().Table("users").MinTo("age", &min)
- [x] Replace
- [x] Page
- [x] LastSql

- [x] WhereBuilder
- [x] OrWhereBuilder
- [x] WhereSub
- [x] OrWhereSub
- [x] WhereNested
- [x] OrWhereNested

- [x] To
- [x] Bind
- [x] ListTo
Expand Down

0 comments on commit 1881c42

Please sign in to comment.