Bagaimana untuk Mendapatkan Jumlah Nilai Lajur Menggunakan GORM dan Imbas?

Mary-Kate Olsen
Lepaskan: 2024-10-23 23:08:30
asal
870 orang telah melayarinya

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

Mendapatkan Jumlah Lajur Gaji menggunakan GORM

Dalam kod anda, anda cuba untuk mendapatkan jumlah lajur gaji daripada jadual Postgres bernama "orang" menggunakan GORM. Walau bagaimanapun, pendekatan semasa anda mempunyai beberapa had.

Untuk mendapatkan semula jumlah lajur gaji dengan betul, adalah disyorkan untuk menggunakan fungsi Imbas GORM dan bukannya membina pertanyaan SQL secara manual. Pendekatan ini membolehkan anda mentakrifkan struct yang mewakili hasil yang anda mahu dapatkan semula.

Contoh:

<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>
Salin selepas log masuk

Dalam kod ini:

  • Struktur SalarySum mentakrifkan hasil jangkaan pertanyaan. Ia mengandungi satu medan "Jumlah" jenis uint.
  • Db.Table("orang").Select("SUM(gaji) AS sum") baris memilih jumlah lajur gaji dan menyamakannya sebagai "jumlah" dalam keputusan.
  • Bahagian Scan(&GajiSum) mengimbas keputusan ke dalam struktur GajiSum.

Kod yang dikemas kini ini sepatutnya mengambil dan mengembalikan jumlah gaji dengan betul lajur daripada jadual "orang".

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Jumlah Nilai Lajur Menggunakan GORM dan Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!