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制作简单的网页爬虫
Nov 22 Python
python 类详解及简单实例
Mar 24 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
python实现图片识别汽车功能
Nov 30 Python
python交易记录链的实现过程详解
Jul 03 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 Python
Django多数据库联用实现方法解析
Nov 12 Python
Python模拟登录requests.Session应用详解
Nov 17 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
中东人咖啡哲学
2021/03/03 咖啡文化
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
node.js中的socket.io入门实例
2014/04/26 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
python实现文本文件合并
2015/12/29 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
python selenium循环登陆网站的实现
2019/11/04 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
阿巴庭院:Abba Patio
2019/06/18 全球购物
请说出几个常用的异常类
2013/01/08 面试题
this关键字的含义
2015/04/08 面试题
幼儿园小班家长寄语
2014/04/02 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
思想品德课教学反思
2016/02/24 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android