【Mysql】单表多功能查询的封装

前言

因为最近业务问题,面临大批量的查询、排序、分页、字段筛选,所以用原生sql写了这么一个封装。

适用范围

  • 前端单表查询:包括分页、排序、条件、字段筛选
  • 后端查询:单表查询直接使用

功能以及接口使用

参数介绍

  • ‘condition’:[]
    解释:参数由列表输入:[‘name@like:小明’,year@>:16] '@‘和’:'为固定格式,后台代码用其进行通配符。包含 !=,=,>,>=,<,<=,in,notin,like
  • ‘orderby’:[]
    解释:参数由列表输入:['date@desc,‘name@asc’] @为固定格式
  • ‘exclude’:[]
    解释:参数由列表输入:[‘remark’,‘name’] 数据为不包含的字段名
  • ‘page’:int
    解释:参数为页数,类型为整型
  • ‘pagesize’:int
    解释:参数为每页的大小,类型为整型

注意:不需要的字段可以不给

案例说明

from sqlcomment.sql import querycomment
param = {'exclude':['url'],
      'condition':['area@notin:("绵竹市","德阳市")','date@>:2023-01-01'],
      'orderby':['date@desc','title@desc'],
      'page':2,
      'pagesize':10
      }

dbname = 'dy'

sql,sql_count = querycomment(param,dbname,cursor)
_,data = cursor.execute(sql),cursor.fetchall()
_,count = cursor.execute(sql_count),cursor.fetchone()

sql,sql_count 返回的是sql语句,需要在返回之后手动执行一次获取数据,这样设计的原因是可能有时候在业务需求上我们还需要对sql语句进一步编写,如联表查询等。其中data是查询回来的数据,count是符合条件的总数据 这样的话有助于前端进行分页操作

whl文件获取

此模块属于抽象部分,故将其打包成whl文件。可直接pip install后使用,安装后也可在lib中查看源码
链接:https://pan.baidu.com/s/1nv7kfzbgvcAwP1eD5V4czQ
提取码:baju

结语

我这里给经常写原生查询SQL的同学一些向导,欢迎指正!有需要的同学可以根据lib中的源码进行拓展和封装。也欢迎愿意和我一起交流学的小伙伴,主页有我的联系方式哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会振刀的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值