针对查询有如下问题:
如果是多条记录,
ruleTargets := []*RuleTarget{}
db := database.GetDB(ctx)
db = db.Select("distinct " + column)
db = db.Where("rule_targets.account_id in (?)", uids)
db.Find(&ruleTargets)
这样是不会有db.error的错误的。因为是多条记录的返回。
如果是单条记录:
ruleTargets := &RuleTarget{}
db = db.Select("distinct " + column)
db = db.Where("rule_targets.account_id in (?)", uids)
db.Find(&ruleTargets)
则
db.RecordNotFound()返回为true。同时,db.Error不为nil,
db.GetErrors()的len也不为0.因为有record not found这种error返回。这里要注意。对单条记录的查询,如果要忽略不存在数据的情况不报错,要这么处理:
if !db.RecordNotFound() && len(db.GetErrors()) > 0 {
//记录错误
}