在 Golang 中,可以透過使用 database/sql 套件中的 ORDER BY 子句對查詢結果進行排序。語法:func (db *DB) Query(query string, args ...interface{}) (*Rows, error)排序範例:SELECT * FROM users ORDER BY name ASC其他排序選項:DESC(降序)、多個欄位(逗號分隔)、NULL 值排序順序(NULLS FIRST 或NULLS LAST)實戰案例:依"order_date" 降序排列訂單:SELECT * FROM orders ORDER BY order_date DESC。
在 Golang 中使用 database/sql 套件操作資料庫時,可以使用 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) } }
其他排序選項:
#多個欄位:
使用逗號分隔多個列,例如:NULL 值:
使用NULLS FIRST
或實戰案例: ###假設我們有一個"orders" 表,其中包含"order_id"、"customer_id" 和"order_date" 欄位。我們可以編寫一個 Golang 程式按 "order_date" 降序排列訂單:###
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) } }
以上是如何對 Golang 中的資料庫記錄進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!