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 制作图片转pdf工具
Jan 30 Python
简介Django框架中可使用的各类缓存
Jul 23 Python
简单理解Python中的装饰器
Jul 31 Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
详细分析Python垃圾回收机制
Jul 01 Python
关于Python字符编码与二进制不得不说的一些事
Oct 04 Python
基于Python爬取素材网站音频文件
Oct 21 Python
python中操作文件的模块的方法总结
Feb 04 Python
总结几个非常实用的Python库
Jun 26 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
让python在hadoop上跑起来
2016/01/27 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
django 类视图的使用方法详解
2019/07/24 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
python实现定时发送邮件
2020/12/23 Python
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
追悼会子女答谢词
2014/01/28 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
利用python做数据拟合详情
2021/11/17 Python
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL