pernyataan pertanyaan paging golang

PHPz
Lepaskan: 2023-05-15 09:21:07
asal
530 orang telah melayarinya

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
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan