在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中文網其他相關文章!