首頁 > 後端開發 > Golang > golang分頁查詢語句

golang分頁查詢語句

PHPz
發布: 2023-05-15 09:21:07
原創
543 人瀏覽過

在Go語言中進行分頁查詢有很多種實作方式,本文將介紹其中一種實作方式:使用limit和offset關鍵字。具體實作如下:

func queryData(pageSize, pageNum int) ([]Data, error) {
    // 计算数据偏移量
    offset := (pageNum - 1) * pageSize

    // 拼接查询语句
    query := fmt.Sprintf("SELECT * FROM data LIMIT %d OFFSET %d", pageSize, offset)

    // 执行查询语句并返回结果
    rows, err := db.Query(query)
    if err != nil {
        return nil, err
    }
    defer rows.Close()

    data := []Data{}
    for rows.Next() {
        // 解析查询结果
        var id int
        var name string
        var age int
        err = rows.Scan(&id, &name, &age)
        if err != nil {
            return nil, err
        }

        // 将数据添加到结果集中
        data = append(data, Data{
            ID:   id,
            Name: name,
            Age:  age,
        })
    }

    return data, nil
}
登入後複製

此函數可以接受兩個參數:pageSize和pageNum,分別表示每頁資料大小和目前頁碼。函數內部使用這兩個參數計算資料的偏移量,並使用limit和offset關鍵字拼接查詢語句,然後執行查詢語句並解析結果集,最後將資料加入結果集中並傳回。

使用函數進行分頁查詢非常簡單,只需要指定每頁資料大小和目前頁碼。例如,我們可以按照每頁10條數據進行分頁查詢,查詢第3頁數據的代碼如下:

data, err := queryData(10, 3)
if err != nil {
    log.Fatal(err)
}

// 输出查询结果
for _, d := range data {
    fmt.Printf("ID=%d, Name=%s, Age=%d
", d.ID, d.Name, d.Age)
}
登入後複製

該代碼將查詢第3頁數據,每頁數據大小為10條,並將查詢結果輸出到控制台。如果查詢過程中出現錯誤,程式將列印錯誤訊息並退出。

以上是golang分頁查詢語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板