当前位置: 首页 > news >正文

gofly接口自定义搜索条件

Go快速开发框架自定义数据库搜索条件,当你前端传多个搜索条件时候,需要接口对条件做判断,拼接查找的sql语句实现查询。下面我们对自定义搜索条件使用说明。

1.创建存储条件的数组

whereMap := gmap.New()

2.根据接口传参组装sql查询条件

 //搜索添条件param, _ := gf.RequestParam(c)if name, ok := param["name"]; ok && name != "" {whereMap.Set("name like ?", "%"+gconv.String(name)+"%")}if mobile, ok := param["mobile"]; ok && mobile != "" {whereMap.Set("name", mobile)}if cid, ok := param["cid"]; ok && cid != "" {whereMap.Set("cid", cid)}

3.把查找条件数据传入orm查询中

  MDB := gf.Model("user").Where(whereMap)//获取总数totalCount, _ := MDB.Clone().Count()//获取数据列表list, err := MDB.Fields("id,status,name").Page(pageNo, pageSize).Order("id asc").Select()if err != nil {gf.Failed().SetMsg(err.Error()).Regin(c)} else {gf.Success().SetMsg("获取数据列表").SetData(gf.Map{"page":     pageNo,"pageSize": pageSize,"total":    totalCount,"items":    list,}).Regin(c)}

其他查询语句:

param, _ := gf.RequestParam(c)
//模糊查询
whereMap.Set("name like ?", "%"+gconv.String(param["name"])+"%") 
//区间
whereMap.Set("createtime  between ?", gf.Slice{param["star_time"], param["end_time"]})
//等于
whereMap.Set("cid", 2)
//大于
whereMap.Set("cid > ?", 2)
//大等于
whereMap.Set("cid >=?", 2)
//小于
whereMap.Set("cid < ?", 2)
//小等于
whereMap.Set("cid <=?", 2)
//in
whereMap.Set("cid", gf.Slice{1, 3, 6,7})

更多查询方式请到GoFly开发框架查看:Go快速开发框架文档

相关文章:

  • 2024.3.6
  • PTA天梯赛L1 021-030题目解析
  • 《汇编语言》- 读书笔记 - 第13章-int 指令
  • 微服务架构 | 数据同步策略
  • 《TCP/IP详解 卷一》第12章 TCP初步介绍
  • 记录前端面试的一些笔试题(持续更新......)
  • 从Win转Mac,我的感受如何
  • Matlab在同一张图中如何加入多个图例
  • 速卖通平台的API返回结果有哪些数据字段?
  • 【C++ vscode 环境问题】vscode编译的时候:未定义标识符 thread mingw-w64安装支持c++11中thread
  • Python3的十个高级功能太强大了!
  • Webserve(4): HTTP解析
  • vue全家桶详解
  • 总线要点笔记
  • 快手item_get API详解:轻松获取商品详情的秘密武器
  • [数据结构]链表的实现在PHP中
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【RocksDB】TransactionDB源码分析
  • 2017-09-12 前端日报
  • canvas 高仿 Apple Watch 表盘
  • Javascript设计模式学习之Observer(观察者)模式
  • js操作时间(持续更新)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SpriteKit 技巧之添加背景图片
  • 番外篇1:在Windows环境下安装JDK
  • 诡异!React stopPropagation失灵
  • 前端_面试
  • 前嗅ForeSpider采集配置界面介绍
  • 驱动程序原理
  • 如何设计一个微型分布式架构?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 责任链模式的两种实现
  • Java总结 - String - 这篇请使劲喷我
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • "无招胜有招"nbsp;史上最全的互…
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #stm32驱动外设模块总结w5500模块
  • #微信小程序:微信小程序常见的配置传旨
  • $L^p$ 调和函数恒为零
  • (1)(1.11) SiK Radio v2(一)
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (31)对象的克隆
  • (day 12)JavaScript学习笔记(数组3)
  • (libusb) usb口自动刷新
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net对接阿里云CSB服务
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET应用架构设计:原则、模式与实践 目录预览