前端的参数是这样的
我用了gorm的Or方法进行模糊查询多列匹配,结果把is_del = 1的记录也查出来了,我要怎么做才能正确查询出结果呢?
后端代码如下:
func GetUsers(param *models.ListUserReq) ([]*models.User, int, error) {
var users []*models.User
var count int
_db := db
keyword := param.Keyword
if keyword != "" {
_db = _db.Where("username LIKE ?", "%"+keyword+"%").Or("nickname LIKE ?", "%"+keyword+"%")
}
if param.Type > 0 {
_db = _db.Where("type = ?", param.Type)
}
_db = _db.Where("is_del = ?", param.IsDel)
order := fmt.Sprintf("%s %s", param.OrderName, param.OrderType)
err := _db.Order(order).Offset(param.PageNum * param.PageSize).Limit(param.PageSize).Find(&users).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, 0, err
}
if err := _db.Model(&models.User{}).Count(&count).Error; err != nil {
return nil, 0, err
}
return users, count, nil
}
把
改成
就可以了