gorm 多条件搜索db处理问题
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处理问题相关推荐
- golang gorm增删改查db.Model db.Where db.Table
1. 创建 创建记录: user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}db.NewRecord(user) ...
- 利用Lucene.net搜索引擎进行多条件搜索的做法
1 联合两个索引查询,已解决: IndexSearcher[] searchers = new IndexSearcher[2]; searchers[0] = new IndexSearch ...
- php实现多条件查找分页,Yii2.0框架实现带分页的多条件搜索功能示例
本文实例讲述了Yii2.0框架实现带分页的多条件搜索功能.分享给大家供大家参考,具体如下: 方法一 在控制器中 public function actionShow(){ $where['title' ...
- FacetWP 筛选与多条件搜索 WordPress插件
FacetWP是一款兼容WooCommerce的高级筛选和多条件搜索WordPress插件,适用于woocommerce的商品主页面,文章存档页面等. 支持自定义字段.可视化页面编辑器搭建.以及多种组 ...
- layUI table 按条件搜索 结果整个页面刷新
layui table 按条件搜索 结果整个页面刷新. 后台能进去,但是结果返回不回来,页面直接刷新 解决:把 <button> 换成 < input type=button/> ...
- VB6基本数据库应用(七):多重条件搜索
同系列的第七篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/48402835 多重条件搜索 前文再续,书接上一回.很高兴又能说出这句话 ...
- 联合两个索引查询,已解决: 还有个进行多条件搜索 and 与 or 的操作
1 联合两个索引查询,已解决: IndexSearcher[] searchers = new IndexSearcher[2]; searchers[0] = new IndexSearcher(m ...
- ODOO13 如何在Many2one字段选择控件上进行多条件搜索
本文实际上是对 _name_search 方法的应用.本文以在Many2one图书借阅人字段上,输入借阅人姓名或借阅人手机号码来搜索借阅人举例说明使用方法. 假如我们有这样的需求:有读者(默认读者信息 ...
- Lucene系列:(10)多条件搜索 QueryParser
1.什么是条件搜索 用关健字与指定的单列或多例进行匹配的搜索 2.单字段条件搜索 QueryParser queryParser = new QueryParser(LuceneUtils.getVe ...
最新文章
- 0.基于C++的图像处理算法实现、INTEL CPU上SSE加速、ARM CPU上NEON加速
- pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):数据持续的时间(分钟)、获得某一节点之后的数据总变化量、获得范围内的统计量
- 4G EPS 中的 FDD/TDD 无线帧
- am大学计算机科学,德克萨斯AM大学TAMU(Texas AM University )计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...
- Cuckoo Hashing的应用及性能优化
- border-radius圆角兼容方案
- php订阅系统,php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用
- Mr.J--HanioTower(递归算法)
- Android笔记 get方式提交数据到服务器 避免乱码 demo
- js将long日期格式转换为标准日期格式
- andorid自定义ViewPager之——子ViewPager滑到边缘后直接滑动父ViewPager
- DEDECMS短信宝短信插件
- html 转盘素材,jQuery指针不动转盘动的Rotate转盘插件
- c语言获取系统时间精确到毫秒,如何获取系统流逝时间(要求精确到毫秒)
- 易基因综述:表观遗传学和表观育种在作物品种改良的重要作用(水稻+玉米+番茄+大豆+油菜)
- slf4j的包使用说明
- UE4新手引导之下载和安装虚幻4游戏引擎
- 汇编语言,大写字母转换为小写
- 面试百问:如何提高自动化测试脚本稳定性
- secureCRT保存屏幕输出内容
热门文章
- Java查看字节码工具
- IDEA for Mac 常用快捷键
- hive报错:hive create table: Specified key was too long; max key length is 767 bytes
- 【WEB2.0】 网页调用QQ聊天(PC+M站)
- Linux时间子系统(二) 软件架构
- OneMap Client API
- Cray:XC50提供了最高密度的性能
- 在sphinx中处理使用特殊字符时所引起错误的办法
- C语言自学《三》---- 条件判断
- Invalid length for a Base-64 char array Exception.