go分页
时间: 2023-07-03 21:27:50 浏览: 226
在Go语言中实现分页可以使用标准库中的`database/sql`和`github.com/go-sql-driver/mysql`包。以下是一个简单的分页示例:
```go
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
if err != nil {
panic(err.Error())
}
defer db.Close()
// 每页显示的记录数
limit := 10
// 当前页码
page := 1
// 计算偏移量
offset := (page - 1) * limit
// 查询记录总数
var count int
err = db.QueryRow("SELECT COUNT(*) FROM table_name").Scan(&count)
if err != nil {
panic(err.Error())
}
// 查询当前页的记录
rows, err := db.Query("SELECT * FROM table_name LIMIT ? OFFSET ?", limit, offset)
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 处理查询结果
for rows.Next() {
var id int
var name string
var age int
err = rows.Scan(&id, &name, &age)
if err != nil {
panic(err.Error())
}
// 处理每一行记录
}
// 计算总页数
total := (count + limit - 1) / limit
}
```
在上面的示例中,我们首先计算偏移量,然后查询记录总数,接着查询当前页的记录,并且最后计算总页数。注意,这里使用了`LIMIT`和`OFFSET`来实现分页,`LIMIT`指定每页显示的记录数,`OFFSET`指定偏移量。
阅读全文