gpt4 book ai didi

postgresql - 如何计算查询中的行数?

转载 作者:数据小太阳 更新时间:2023-10-29 03:36:01 24 4
gpt4 key购买 nike

我有一个问题,如何计算查询中的行数。如下例

rows, err := repo.DBConn.Query("SELECT init_id, email, address,  phone, name, zipcode , about,backgroundimg_url,icon_url FROM public.initiator where init_id in (select init_id from public.events where request_id=$1)",request_id)

最佳答案

如果您不关心行的实际内容,请使用选择计数查询。

var count int
row := repo.DBConn.QueryRow("SELECT COUNT(*) FROM public.initiator where init_id in (select init_id from public.events where request_id=$1)",request_id)
if err := row.Scan(&count); err != nil {
return err
}

如果您关心内容,则将行扫描到 slice 中,然后使用 len 函数获取其长度。

rows, err := repo.DBConn.Query(`SELECT init_id, email, address,  phone, name, zipcode , about,backgroundimg_url,icon_url FROM public.initiator where init_id in (select init_id from public.events where request_id=$1)",request_id`)
if err != nil {
return err
}
defer rows.Close()

var inits []*Initiator
for rows.Next() {
ini := new(Initiator)
if err := rows.Scan(&ini.InitID, &ini.Email, ...); err != nil {
return err
}
inits = append(inits, ini)
}
if err := rows.Err(); err != nil {
return err
}

count := len(inits)

如果你正在做分页并且你想要的只是,比如说每个请求 20 行,但你还想要满足 WHERE 子句的总行数,那么你需要执行两个查询,一个要检索的查询20 行和计算总行数的行。您可以结合上述示例来执行此操作。

关于postgresql - 如何计算查询中的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57907605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com