最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang gorm 計(jì)算字段和獲取sum()值的實(shí)現(xiàn)

 更新時(shí)間:2020年12月19日 10:39:30   作者:瘋狂的鴨血  
這篇文章主要介紹了golang gorm 計(jì)算字段和獲取sum()值的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

計(jì)算表lb_ytt_user_money_log 中,字段money的和

代碼如下:

var total_money []int
sqlstr := `select 
 SUM(money) as total_money 
 from 
 lb_ytt_user_money_log 
 where 
 user_id = ? and l_type = 1 and status=1 and (create_time> ? and create_time <= ?)`
Db.Raw(sqlstr, userID, beginTimeNum, endTimeNum).Pluck("SUM(money) as total_money", &total_money)

Pluck

將模型中的單個(gè)列作為地圖查詢,如果要查詢多個(gè)列,可以使用Scan

Db.Raw(sqlstr, userID, beginTimeNum, endTimeNum).Pluck("SUM(money) as total_money", &total_money)

如果把Db.Pluck換成Db.scan得出的就是0

補(bǔ)充:golang gorm 解決mysql sum函數(shù)列有null時(shí) 報(bào)錯(cuò) sconverting NULL to int64 is unsupported

當(dāng)我們查詢orders表order_amount字段的和時(shí),如果order_amount字段有null值,則gorm會(huì)報(bào)錯(cuò)sql:

Scan error on column index 0, name "sum(order_amount)": converting NULL to int64 is unsupported

var price int64

db.Table("orders").Select("sum(order_amount)").Scan(&price)

解決方法:

使用gorm的Pluck 從數(shù)據(jù)庫查詢單個(gè)列,并將結(jié)果掃描到切片,在循環(huán)取出值計(jì)算總和,這樣即使有null值,也能正確計(jì)算和,不會(huì)因?yàn)閟um函數(shù)的機(jī)制導(dǎo)致報(bào)錯(cuò)

//創(chuàng)建一個(gè)存儲(chǔ)查詢結(jié)果的切片
var result []int64
var sum int64
db.Table("orders").Pluck("order_amount",&result )
for _,v := range result{
 sum += v
 }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Golang中的關(guān)鍵字(defer、:=、go?func())詳細(xì)解讀

    Golang中的關(guān)鍵字(defer、:=、go?func())詳細(xì)解讀

    這篇文章主要介紹了Golang中的關(guān)鍵字(defer、:=、go?func())詳細(xì)解讀,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Go實(shí)現(xiàn)文件分片上傳

    Go實(shí)現(xiàn)文件分片上傳

    這篇文章主要為大家詳細(xì)介紹了Go實(shí)現(xiàn)文件分片上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • go語言make初始化的實(shí)現(xiàn)

    go語言make初始化的實(shí)現(xiàn)

    Go語言中的make函數(shù)用于初始化切片、映射和通道,本文就來介紹一下go語言make初始化的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • golang基于Mutex實(shí)現(xiàn)可重入鎖

    golang基于Mutex實(shí)現(xiàn)可重入鎖

    鎖可重入也就是當(dāng)前已經(jīng)獲取到鎖的goroutine繼續(xù)調(diào)用Lock方法獲取鎖,Go標(biāo)準(zhǔn)庫中提供了sync.Mutex實(shí)現(xiàn)了排他鎖,但并不是可重入的,所以本文給大家介紹了golang基于Mutex實(shí)現(xiàn)可重入鎖,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2024-03-03
  • 一文帶你輕松理解Go中的內(nèi)存逃逸問題

    一文帶你輕松理解Go中的內(nèi)存逃逸問題

    這篇文章主要給大家介紹Go中的內(nèi)存逃逸問題,文中通過代碼示例講解的非常詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的參考價(jià)值,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)
    2023-06-06
  • Golang?gin跨域解決方案示例

    Golang?gin跨域解決方案示例

    這篇文章主要為大家介紹了Golang?gin跨域解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 使用Go重構(gòu)流式日志網(wǎng)關(guān)的實(shí)戰(zhàn)分享

    使用Go重構(gòu)流式日志網(wǎng)關(guān)的實(shí)戰(zhàn)分享

    流式日志網(wǎng)關(guān)的主要功能是提供?HTTP?接口,接收?CDN?邊緣節(jié)點(diǎn)上報(bào)的各類日志(訪問日志/報(bào)錯(cuò)日志/計(jì)費(fèi)日志等),將日志作預(yù)處理并分流到多個(gè)的?Kafka?集群和?Topic?中,本文就給大家分享如何使用?Go?重構(gòu)流式日志網(wǎng)關(guān)
    2023-06-06
  • golang中range在slice和map遍歷中的注意事項(xiàng)

    golang中range在slice和map遍歷中的注意事項(xiàng)

    今天小編就為大家分享一篇關(guān)于golang中range在slice和map遍歷中的注意事項(xiàng),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Golang中HttpRouter路由的使用詳解

    Golang中HttpRouter路由的使用詳解

    httprouter?是一個(gè)高性能、可擴(kuò)展的HTTP路由,本文將通過一些簡(jiǎn)單的示例為大家講講httprouter?這個(gè)強(qiáng)大的?HTTP?路由是如何使用的,感興趣的小伙伴可以了解一下
    2023-05-05
  • Go語言interface 與 nil 的比較

    Go語言interface 與 nil 的比較

    在golang中,nil只能賦值給指針、channel、func、interface、map或slice類型的變量。如果未遵循這個(gè)規(guī)則,則會(huì)引發(fā)panic。
    2017-08-08

最新評(píng)論

辉南县| 运城市| 烟台市| 寿阳县| 惠安县| 姜堰市| 晴隆县| 赤城县| 石家庄市| 新乐市| 汝阳县| 桐梓县| 宁蒗| 凤翔县| 济源市| 安仁县| 文登市| 鄂伦春自治旗| 定安县| 吕梁市| 阳新县| 西贡区| 洮南市| 长葛市| 禄丰县| 松溪县| 中方县| 楚雄市| 富川| 莱芜市| 汤原县| 河源市| 白山市| 新巴尔虎左旗| 建水县| 德昌县| 漾濞| 望谟县| 嘉峪关市| 育儿| 松潘县|