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中的并发编程实例
Jul 07 Python
Python之日期与时间处理模块(date和datetime)
Feb 16 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
python实现局域网内实时通信代码
Dec 22 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python数据分析之单因素分析线性拟合及地理编码
Jun 25 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
php正则表达式使用的详细介绍
2013/04/27 PHP
smarty缓存用法分析
2014/12/16 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
通过python爬虫赚钱的方法
2019/01/29 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
省级四好少年事迹材料
2014/01/25 职场文书
避暑山庄导游词
2015/02/04 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
民事起诉状范文
2015/05/19 职场文书
python 判断文件或文件夹是否存在
2022/03/18 Python
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python