Maison > Article > développement back-end > Comment trier les enregistrements de la base de données dans Golang ?
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.
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) } }
其他排序选项:
ORDER BY name DESC, age ASC
NULLS FIRST
或 NULLS LAST
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)
}
}
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 : 🎜rrreeeCe 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!