GoFrame 數(shù)據(jù)查詢-Group/Order/Having

2022-04-02 09:37 更新

Group/Order分組與排序

?Group?方法用于查詢分組,?Order?方法用于查詢排序。使用示例:

// SELECT COUNT(*) total,age FROM `user` GROUP BY age
g.Model("user").Fields("COUNT(*) total,age").Group("age").All()

// SELECT * FROM `student` ORDER BY class asc,course asc,score desc
g.Model("student").Order("class asc,course asc,score desc").All()

同時,?goframe?的?ORM?提供了一些常用的排序方法:

// 按照指定字段遞增排序
func (m *Model) OrderAsc(column string) *Model
// 按照指定字段遞減排序
func (m *Model) OrderDesc(column string) *Model
// 隨機排序
func (m *Model) OrderRandom() *Model

使用示例:

// SELECT `id`,`title` FROM `article` ORDER BY `created_at` ASC
g.Model("article").Fields("id,title").OrderAsc("created_at").All()

// SELECT `id`,`title` FROM `article` ORDER BY `views` DESC
g.Model("article").Fields("id,title").OrderDesc("views").All()

// SELECT `id`,`title` FROM `article` ORDER BY RAND()
g.Model("article").Fields("id,title").OrderRandom().All()

Having條件過濾

?Having?方法用于查詢結果的條件過濾。使用示例:

// SELECT COUNT(*) total,age FROM `user` GROUP BY age HAVING total>100
g.Model("user").Fields("COUNT(*) total,age").Group("age").Having("total>100").All()

// SELECT * FROM `student` ORDER BY class HAVING score>60
g.Model("student").Order("class").Having("score>?", 60).All()


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號