Terdapat banyak cara untuk melaksanakan pertanyaan paging dalam bahasa Go Artikel ini akan memperkenalkan salah satu cara untuk melaksanakannya: menggunakan had dan mengimbangi kata kunci. Pelaksanaan khusus adalah seperti berikut:
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 }
Fungsi ini boleh menerima dua parameter: pageSize dan pageNum, yang masing-masing mewakili saiz data setiap halaman dan nombor halaman semasa. Fungsi secara dalaman menggunakan kedua-dua parameter ini untuk mengira offset data, menggunakan had dan offset kata kunci untuk menyambung pernyataan pertanyaan, kemudian melaksanakan pernyataan pertanyaan dan menghuraikan set hasil, dan akhirnya menambah data pada set hasil dan mengembalikannya .
Menggunakan fungsi ini untuk pertanyaan halaman adalah sangat mudah Anda hanya perlu menentukan saiz data setiap halaman dan nombor halaman semasa. Sebagai contoh, kita boleh melakukan pertanyaan paging berdasarkan 10 keping data setiap halaman Kod untuk menanyakan data pada halaman 3 adalah seperti berikut:
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) }
Kod ini akan menanyakan data pada halaman 3. Saiz data. setiap halaman adalah 10 keping, dan pertanyaan akan Hasilnya adalah output ke konsol. Jika ralat berlaku semasa pertanyaan, atur cara akan mencetak mesej ralat dan keluar.
Atas ialah kandungan terperinci pernyataan pertanyaan paging golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!