Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengisih rekod pangkalan data di Golang?
Di Golang, hasil pertanyaan boleh diisih menggunakan klausa ORDER BY dalam pakej pangkalan data/sql. Sintaks: func (db *DB) Pertanyaan(rentetan pertanyaan, args ...antara muka{}) (*Baris, ralat) Contoh pengisihan: PILIH * DARI pengguna ORDER OLEH nama ASC Pilihan pengisihan lain: DESC (menurun), berbilang lajur ( Dipisahkan koma), tertib isih nilai NULL (NULLS FIRST atau NULLS LAST) Kes praktikal: Isih pesanan dalam tertib menurun mengikut "tarikh_pesanan": PILIH * DARI pesanan ORDER OLEH order_date DESC.
Apabila menggunakan pakej pangkalan data/sql untuk mengendalikan pangkalan data di Golang, anda boleh menggunakan klausa ORDER BY
untuk mengisih hasil pertanyaan. 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)
}
}
NULLS FIRST
atau NULLS LAST
untuk menentukan sama ada hendak meletakkan nilai NULL pada permulaan atau akhir set hasil 🎜🎜🎜🎜Praktikal contoh: 🎜🎜🎜Andaikan kita mempunyai jadual "pesanan", yang mengandungi lajur "id_pesanan", "id_pelanggan" dan "tarikh_pesanan". Kita boleh menulis program Golang untuk mengisih pesanan mengikut "tarikh_pesanan" dalam susunan menurun: 🎜rrreeeAtas ialah kandungan terperinci Bagaimana untuk mengisih rekod pangkalan data di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!