首頁 > 後端開發 > Golang > 如何使用 GORM 和 Scan 檢索列值的總和?

如何使用 GORM 和 Scan 檢索列值的總和?

Mary-Kate Olsen
發布: 2024-10-23 23:08:30
原創
975 人瀏覽過

How to Retrieve the Sum of a Column Value Using GORM and Scan?

使用GORM 檢索薪資列的總和

在您的程式碼中,您會嘗試從名為的Postgres 表中擷取薪資列的總和使用GORM 的「人」。但是,您目前的方法有一些限制。

要正確檢索薪資列的總和,建議使用 GORM 的 Scan 函數,而不是手動建立 SQL 查詢。這種方法可讓您定義一個表示要檢索的結果的結構。

範例:

<code class="go">func GetSalarySum(c echo.Context) error {
    db, err := gorm.Open("postgres", "host=localhost port=5433 user=postgres dbname=testone password=root sslmode=disable")
    checkError(err)
    defer db.Close()

    type SalarySum struct {
        Sum uint `gorm:"column:sum"`
    }

    var salarySum SalarySum
    if err := db.Table("people").Select("SUM(salary) AS sum").Scan(&salarySum).Error; err != nil {
        fmt.Println("error->", err)
    }

    return c.JSON(http.StatusOK, salarySum)
}</code>
登入後複製

在此程式碼中:

  • SalarySum 結構體定義了查詢的預期結果。它包含一個 uint 類型的字段“Sum”。
  • db.Table("people").Select("SUM(salary) AS sum") 行選擇薪資列的總和並為其指定別名為結果中的「sum」。
  • Scan(&salarySum) 部分將結果掃描到 salarySum 結構中。

此更新的程式碼應該正確檢索並傳回薪資的總和「人員」表中的欄位。

以上是如何使用 GORM 和 Scan 檢索列值的總和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板