Maison  >  Article  >  développement back-end  >  Comment trier les enregistrements de la base de données dans Golang ?

Comment trier les enregistrements de la base de données dans Golang ?

WBOY
WBOYoriginal
2024-06-03 13:30:57573parcourir

Dans Golang, les résultats des requêtes peuvent être triés à l'aide de la clause ORDER BY dans le package base de données/sql. Syntaxe : func (db *DB) Query(query string, args ...interface{}) (*Lignes, erreur) Exemple de tri : SELECT * FROM utilisateurs ORDER BY nom ASC Autres options de tri : DESC (décroissant), plusieurs colonnes ( Séparés par des virgules), ordre de tri des valeurs NULL (NULLS FIRST ou NULLS LAST) Cas pratique : Trier les commandes par ordre décroissant par "order_date" : SELECT * FROM commandes ORDER BY order_date DESC.

如何对 Golang 中的数据库记录进行排序?

Comment trier les enregistrements de base de données dans Golang ?

Lorsque vous utilisez le package database/sql pour faire fonctionner la base de données dans Golang, vous pouvez utiliser la clause ORDER BY pour trier les résultats de la requête. ORDER BY 子句对查询结果进行排序。

语法:

func (db *DB) Query(query string, args ...interface{}) (*Rows, error)

排序示例:

以下示例演示如何对名为 "users" 的表中的记录按 "name" 列升序排序:

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 连接到数据库
    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // 构建查询
    query := `SELECT * FROM users ORDER BY name ASC`

    // 执行查询
    rows, err := db.Query(query)
    if err != nil {
        panic(err)
    }
    defer rows.Close()

    // 遍历结果
    for rows.Next() {
        var id int
        var name, email string
        if err := rows.Scan(&id, &name, &email); err != nil {
            panic(err)
        }
        fmt.Printf("%d %s %s\n", id, name, email)
    }
}

其他排序选项:

  • DESC:降序排序
  • 多个列:使用逗号分隔多个列,例如:ORDER BY name DESC, age ASC
  • NULL 值:使用 NULLS FIRSTNULLS LAST
Syntaxe :

package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 连接到数据库
    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // 构建查询
    query := `SELECT * FROM orders ORDER BY order_date DESC`

    // 执行查询
    rows, err := db.Query(query)
    if err != nil {
        panic(err)
    }
    defer rows.Close()

    // 遍历结果
    for rows.Next() {
        var orderID, customerID int
        var orderDate string
        if err := rows.Scan(&orderID, &customerID, &orderDate); err != nil {
            panic(err)
        }
        fmt.Printf("%d %d %s\n", orderID, customerID, orderDate)
    }
}

Exemple de tri :

🎜L'exemple suivant montre comment trier les enregistrements d'une table nommée "utilisateurs" par ordre croissant selon la colonne "nom" : 🎜rrreee🎜🎜Autres options de tri : 🎜 🎜
  • 🎜DESC : 🎜Trier par ordre décroissant🎜
  • 🎜Colonnes multiples : 🎜Utilisez des virgules pour séparer plusieurs colonnes, par exemple : ORDER BY nom DESC, âge ASC🎜🎜Valeurs NULL : 🎜Utilisez NULLS FIRST ou NULLS LAST pour spécifier s'il faut placer les valeurs NULL au début ou à la fin de l'ensemble de résultats 🎜🎜🎜🎜Pratique exemple : 🎜🎜🎜Supposons que nous ayons une table « commandes », qui contient les colonnes « order_id », « customer_id » et « order_date ». Nous pouvons écrire un programme Golang pour trier les commandes par "order_date" par ordre décroissant : 🎜rrreee
  • 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!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn