Python使用sql语句对mysql数据库多条件模糊查询的思路详解


Posted in Python onApril 12, 2021
def find_worldByName(c_name,continent):
    print(c_name)
    print(continent)
    sql = " SELECT * FROM world WHERE  1=1 "
    if(c_name!=None):
        sql=sql+"AND ( c_name LIKE '%"+c_name+"%' )"
    if(continent!=None):
        sql=sql+" AND ( continent LIKE '%"+continent+"%') "
    sql=sql+" AND dt=(SELECT dt FROM world order by dt desc limit 1) order by confirm desc "

          # "AND continent LIKE '%%%%%s%%%%'" \
          # " order by dt desc " %(c_name,continent)
    # sql_temp = " SELECT * FROM world WHERE c_name LIKE '%"+c_name+"%' "
    res = query(sql)
    list= []
    for i in res:
        # print(i)
        list.append(i)
    return list;

背景:

页面的搜索框是有两个搜索条件,一个是国家,一个是大洲。

那么在数据库查询的时候就会出现问题,如果国家传的值是None那么使用AND连接的sql语句这个条件会被

整体判定为false,也就是另一个查询条件 “大洲 ”就会作废,为了防止参数出现这样的错误。需要在写sql语

句的时候对参数是否为空加一个判断条件,然后逐层添加sql语句。

思路:

首先使用开头的一个sql语句:

sql = " SELECT * FROM world WHERE 1=1 "

之后逐层判定参数是否为空,再拼接sql语句:

if(c_name!=None):
          sql=sql+"AND ( c_name LIKE '%"+c_name+"%' )"
      if(continent!=None):
          sql=sql+" AND ( continent LIKE '%"+continent+"%') "
      sql=sql+" AND dt=(SELECT dt FROM world order by dt desc limit 1) order by confirm desc "

还有一个地方需要注意:
sql语句传参数,参数是一个变量,有两种方式:
① 直接拼接到sql语句中:

var c_name="test"
sql_temp = " SELECT * FROM world WHERE c_name LIKE ' %"+c_name+"% '"

② 使用占位符%代替,在语句末尾再替换占位符:

sql = " SELECT * FROM world WHERE c_name LIKE '%%%%%s%%%%' AND continent LIKE '%%%%%s%%%%'" %(c_name,continent)

Python使用sql语句对mysql数据库多条件模糊查询的思路详解

Tomorrow the birds will sing.

到此这篇关于Python使用sql语句对mysql数据库多条件模糊查询的思路详解的文章就介绍到这了,更多相关Python mysql多条件模糊查询内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
python网络编程学习笔记(10):webpy框架
Jun 09 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Python实现最大子序和的方法示例
Jul 05 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
python 爬取小说并下载的示例
Dec 07 Python
python实现学生信息管理系统源码
Feb 22 Python
Python与C++中梯度方向直方图的实现
Mar 17 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
解析Python中的异常处理
2015/04/28 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
python os.fork() 循环输出方法
2019/08/08 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
高中生毕业自我鉴定范文
2013/12/22 职场文书
煤矿班组长的职责
2013/12/25 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
医院实习介绍信
2014/01/12 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
儿园租房协议书范本
2014/12/02 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电