mirror of
https://github.com/gohouse/gorose.git
synced 2025-12-24 12:47:55 +08:00
list/pluck
This commit is contained in:
12
database.go
12
database.go
@@ -340,8 +340,8 @@ func (db *Database) Count() (res int64, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// Pluck 从查询结果集中获取指定列的值列表。
|
||||
func (db *Database) Pluck(column string) (res []any, err error) {
|
||||
// List 获取指定列的值列表。
|
||||
func (db *Database) List(column string) (res []any, err error) {
|
||||
ress, err := db.Get(column)
|
||||
if err != nil {
|
||||
return res, err
|
||||
@@ -352,16 +352,14 @@ func (db *Database) Pluck(column string) (res []any, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// List 获取指定列的键值对列表。
|
||||
func (db *Database) List(column string, keyColumn string) (res []map[any]any, err error) {
|
||||
// Pluck 从查询结果集中获取键值对列表。
|
||||
func (db *Database) Pluck(column string, keyColumn string) (res map[any]any, err error) {
|
||||
ress, err := db.Get(column, keyColumn)
|
||||
if err != nil {
|
||||
return res, err
|
||||
}
|
||||
for _, v := range ress {
|
||||
res = append(res, map[any]any{
|
||||
v[keyColumn]: v[column],
|
||||
})
|
||||
res[v[keyColumn]] = v[column]
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
18
readme.md
18
readme.md
@@ -317,6 +317,24 @@ xxx.Where("id",">", 1).Where(func(wh gorose.IWhere) {
|
||||
})
|
||||
```
|
||||
|
||||
## Pluck
|
||||
返回两列数据到一个map中,第一列为value,第二列为key
|
||||
```go
|
||||
// select id,name from users
|
||||
db().Table("users").Pluck("name", "id")
|
||||
// 返回 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}
|
||||
```
|
||||
|
||||
## To 查询结果绑定到对象
|
||||
使用结构体字段作为 select 字段
|
||||
使用结构体字段值作为 where 条件
|
||||
|
||||
Reference in New Issue
Block a user