GORM 按字段 升序降序
时间: 2023-09-01 09:06:32 浏览: 181
在 GORM 中,你可以使用 `Order` 方法来指定查询结果的排序方式。通过传递排序字段和排序方向,你可以实现升序或降序排序。
下面是一个示例代码,演示如何在 GORM 中按字段进行升序或降序排序:
```go
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/db_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println("连接数据库失败:", err)
return
}
var users []User
// 升序排序
db.Order("age ASC").Find(&users)
fmt.Println("升序排序结果:")
for _, user := range users {
fmt.Printf("ID: %d, Name: %s, Age: %d\n", user.ID, user.Name, user.Age)
}
// 降序排序
db.Order("age DESC").Find(&users)
fmt.Println("降序排序结果:")
for _, user := range users {
fmt.Printf("ID: %d, Name: %s, Age: %d\n", user.ID, user.Name, user.Age)
}
}
```
在上面的示例中,我们定义了一个 `User` 结构体表示用户信息。然后使用 `Order` 方法来设置排序条件。通过传递要排序的字段和排序方向(`ASC` 表示升序,`DESC` 表示降序),我们可以实现按字段进行排序。
在示例中,首先通过 `db.Order("age ASC").Find(&users)` 对 `User` 模型按年龄字段进行升序排序。然后通过 `db.Order("age DESC").Find(&users)` 对 `User` 模型按年龄字段进行降序排序。
通过这种方式,你可以根据需求来设置排序方式,实现按字段的升序或降序排序。
阅读全文