goland gorm分组查询统计_请教一下 Gorm 的 Count 问题

本文探讨了在使用Golang的GORM库进行分组查询时遇到的Count方法异常问题。代码示例中,由于额外的and条件导致查询结果不正确。文章通过分析代码并提供解决方案,帮助Go新手理解如何正确使用GORM进行统计查询。
摘要由CSDN通过智能技术生成

Count 方法这里怎么会多出一个 and 条件,导致结果不正确呢,我代码有问题么?

go 新手 求指点

代码片段

util 中部分定义:

package util

type Result struct {

Code uint `json:"code"`

Data interface{} `json:"data"`

}

// NewResult creates a result with Code=0, Msg="", Data=nil.

func NewResult() *Result {

return &Result{

Code: 200,

Data: nil,

}

}

type JobRequestParam struct {

ID []uint `form:"id" binding:"required"`

OpsID uint `form:"ops_id" binding:"required"`

RunTime string `form:"run_time"`

}

查询方法

package service

import (

"OpsSimon/util"

"log"

"sync"

)

// AssetsService 资产对象

type AssetsService struct {

mutex *sync.Mutex

}

// Assets 资产实例

var Assets = &AssetsService{

mutex: &sync.Mutex{},

}

// GetList 列表查询

func (srv *AssetsService) GetList(result interface{}, id []uint) (total int) {

err := db.Where(id).Find(result).Count(&total).Error

if err != nil {

log.Println(err.Error())

}

return total

}

执行

func doJob(c *gin.Context) {

result := util.NewResult()

defer c.JSON( http.StatusOK, result)

var arg util.JobRequestParam

err := c.BindJSON(&arg)

if err != nil {

result.Code = http.StatusBadRequest

result.Data = err.Error()

return

}

log.Println(arg.ID)

log.Println(arg.OpsID)

log.Println("len:", len(arg.ID))

var host model.AssetsHosts

total := service.Assets.GetList(&host, arg.ID)

log.Println("total:", total)

if total != len(arg.ID) {

result.Code = http.StatusNotFound

result.Data = "Some host not found!"

return

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值