Maison >développement back-end >Golang >instruction de requête de pagination golang
Il existe de nombreuses façons d'implémenter des requêtes de pagination en langage Go. Cet article présentera l'une des façons de l'implémenter : en utilisant les mots-clés limit et offset. L'implémentation spécifique est la suivante :
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 }
Cette fonction peut accepter deux paramètres : pageSize et pageNum, qui représentent respectivement la taille des données de chaque page et le numéro de page actuel. La fonction utilise en interne ces deux paramètres pour calculer le décalage des données, utilise les mots-clés limit et offset pour fusionner l'instruction de requête, puis exécute l'instruction de requête et analyse l'ensemble de résultats, et enfin ajoute les données à l'ensemble de résultats et les renvoie. .
L'utilisation de cette fonction pour la requête de pagination est très simple. Il vous suffit de spécifier la taille des données de chaque page et le numéro de page actuel. Par exemple, nous pouvons effectuer une requête de pagination basée sur 10 éléments de données par page. Le code pour interroger les données de la page 3 est le suivant :
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) }
Ce code interrogera les données de la page 3, la taille des données de chaque page est. 10, et envoyez les résultats de la requête à la tour de contrôle. Si une erreur se produit lors de la requête, le programme imprimera le message d'erreur et se terminera.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!