當有復雜sql語句的時候,我們需要執行原生sql語句,這樣更加方便
比如下面的這條sql語句
//查詢每天條數 type EveryDayNum struct { Day string `json:"day"` Num int64 `json:"num"` } func CountVisitorsEveryDay(toId string) []EveryDayNum { var results []EveryDayNum DB.Raw("select DATE_FORMAT(updated_at,'%Y-%m-%d') as day ,"+ "count(*) as num from visitor where to_id=? group by day order by day desc limit 30", toId).Scan(&results) return results }
只需要拿着數據庫對象去.Raw(原生sql).Scan()就可以了
Scan的參數是一個結構體引用,所以一定要定義好結構體接收數據才行