gorm 多条件搜索db处理问题

问题描述
if phone != "" {db = db.Where("phone = ?", phone)}if userInfo.UserType == 1 && userInfo.AgentUserId > 0 {db = db.Where("agent_user_id = ? or promoter_user_id = ?", userInfo.AgentUserId, userInfo.AgentUserId)}err = db.Limit(pageSize).Offset((page - 1) * pageSize).Find(&ShopList).Errorif err != nil {s.log.Errorf("获取提现列表错误:%v", err)return nil, 0, v1.ErrorUnknownError("%v", "获取提现列表错误~")}err = db.Count(&total).Errorif err != nil {s.log.Errorf("获取店铺总数错误:%v", err)return nil, total, v1.ErrorUnknownError("%v", "获取店铺总数错误~")}

比如这样,count会吧limit条件也会带上,因为是链式操作,作用到同一个对象上
尝试使用

DBBase := db
err = DBBase .Count(&total).Error

仍然互带上limit条件,因为db为指针类型,实际复制的是指针,所以无效

解决方法

方式一 count前置,limit后置
err = db.Count(&total).Errorif err != nil {s.log.Errorf("获取店铺总数错误:%v", err)return nil, total, v1.ErrorUnknownError("%v", "获取店铺总数错误~")}err = db.Limit(pageSize).Offset((page - 1) * pageSize).Find(&ShopList).Errorif err != nil {s.log.Errorf("获取提现列表错误:%v", err)return nil, 0, v1.ErrorUnknownError("%v", "获取提现列表错误~")}
方式二 limit,Offset 添加-1参数覆盖掉limit条件
err = db.Limit(pageSize).Offset((page - 1) * pageSize).Find(&ShopList).Errorif err != nil {s.log.Errorf("获取提现列表错误:%v", err)return nil, 0, v1.ErrorUnknownError("%v", "获取提现列表错误~")}err = db.Limit(-1).Offset(-1).Count(&total).Errorif err != nil {s.log.Errorf("获取店铺总数错误:%v", err)return nil, total, v1.ErrorUnknownError("%v", "获取店铺总数错误~")}

gorm 多条件搜索db处理问题相关推荐

  1. golang gorm增删改查db.Model db.Where db.Table

    1. 创建 创建记录: user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}db.NewRecord(user) ...

  2. 利用Lucene.net搜索引擎进行多条件搜索的做法

    1 联合两个索引查询,已解决: IndexSearcher[] searchers = new IndexSearcher[2];     searchers[0] = new IndexSearch ...

  3. php实现多条件查找分页,Yii2.0框架实现带分页的多条件搜索功能示例

    本文实例讲述了Yii2.0框架实现带分页的多条件搜索功能.分享给大家供大家参考,具体如下: 方法一 在控制器中 public function actionShow(){ $where['title' ...

  4. FacetWP 筛选与多条件搜索 WordPress插件

    FacetWP是一款兼容WooCommerce的高级筛选和多条件搜索WordPress插件,适用于woocommerce的商品主页面,文章存档页面等. 支持自定义字段.可视化页面编辑器搭建.以及多种组 ...

  5. layUI table 按条件搜索 结果整个页面刷新

    layui table 按条件搜索 结果整个页面刷新. 后台能进去,但是结果返回不回来,页面直接刷新 解决:把 <button> 换成 < input type=button/> ...

  6. VB6基本数据库应用(七):多重条件搜索

    同系列的第七篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/48402835 多重条件搜索 前文再续,书接上一回.很高兴又能说出这句话 ...

  7. 联合两个索引查询,已解决: 还有个进行多条件搜索 and 与 or 的操作

    1 联合两个索引查询,已解决: IndexSearcher[] searchers = new IndexSearcher[2]; searchers[0] = new IndexSearcher(m ...

  8. ODOO13 如何在Many2one字段选择控件上进行多条件搜索

    本文实际上是对 _name_search 方法的应用.本文以在Many2one图书借阅人字段上,输入借阅人姓名或借阅人手机号码来搜索借阅人举例说明使用方法. 假如我们有这样的需求:有读者(默认读者信息 ...

  9. Lucene系列:(10)多条件搜索 QueryParser

    1.什么是条件搜索 用关健字与指定的单列或多例进行匹配的搜索 2.单字段条件搜索 QueryParser queryParser = new QueryParser(LuceneUtils.getVe ...

最新文章

  1. 0.基于C++的图像处理算法实现、INTEL CPU上SSE加速、ARM CPU上NEON加速
  2. pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):数据持续的时间(分钟)、获得某一节点之后的数据总变化量、获得范围内的统计量
  3. 4G EPS 中的 FDD/TDD 无线帧
  4. am大学计算机科学,德克萨斯AM大学TAMU(Texas AM University )计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...
  5. Cuckoo Hashing的应用及性能优化
  6. border-radius圆角兼容方案
  7. php订阅系统,php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用
  8. Mr.J--HanioTower(递归算法)
  9. Android笔记 get方式提交数据到服务器 避免乱码 demo
  10. js将long日期格式转换为标准日期格式
  11. andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
  12. DEDECMS短信宝短信插件
  13. html 转盘素材,jQuery指针不动转盘动的Rotate转盘插件
  14. c语言获取系统时间精确到毫秒,如何获取系统流逝时间(要求精确到毫秒)
  15. 易基因综述:表观遗传学和表观育种在作物品种改良的重要作用(水稻+玉米+番茄+大豆+油菜)
  16. slf4j的包使用说明
  17. UE4新手引导之下载和安装虚幻4游戏引擎
  18. 汇编语言,大写字母转换为小写
  19. 面试百问:如何提高自动化测试脚本稳定性
  20. secureCRT保存屏幕输出内容

热门文章

  1. Java查看字节码工具
  2. IDEA for Mac 常用快捷键
  3. hive报错:hive create table: Specified key was too long; max key length is 767 bytes
  4. 【WEB2.0】 网页调用QQ聊天(PC+M站)
  5. Linux时间子系统(二) 软件架构
  6. OneMap Client API
  7. Cray:XC50提供了最高密度的性能
  8. 在sphinx中处理使用特殊字符时所引起错误的办法
  9. C语言自学《三》---- 条件判断
  10. Invalid length for a Base-64 char array Exception.