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读大数据txt
Mar 28 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
Python OS模块实例详解
Apr 15 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
如何使用python进行pdf文件分割
Nov 11 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
python 制作网站小说下载器
Feb 20 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
2016/02/19 Python
Django实现分页显示效果
2019/10/31 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
医学毕业生自荐信
2013/10/11 职场文书
结构工程研究生求职信
2013/10/13 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
伊琍体标语
2014/06/25 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
导游词格式
2015/02/13 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL