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实现端口转发器的方法
Mar 13 Python
Python简单网络编程示例【客户端与服务端】
May 26 Python
Python探索之自定义实现线程池
Oct 27 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
python根据url地址下载小文件的实例
Dec 18 Python
python多线程并发实例及其优化
Jun 27 Python
python求加权平均值的实例(附纯python写法)
Aug 22 Python
python打开使用的方法
Sep 30 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
Python利用zhdate模块实现农历日期处理
Mar 31 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
tornado捕获和处理404错误的方法
2014/02/26 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
什么是属性访问器
2015/10/26 面试题
介绍一下JMS编程步骤
2015/09/22 面试题
入党积极分子思想汇报
2014/01/02 职场文书
综合实践活动总结
2014/05/05 职场文书
工商干部先进事迹
2014/05/14 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
用python修改excel表某一列内容的操作方法
2021/06/11 Python
Nginx实现会话保持的两种方式
2022/03/18 Servers