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中的生成器和yield详细介绍
Jan 09 Python
Python中正则表达式的详细教程
Apr 30 Python
Python的Django框架中的表单处理示例
Jul 17 Python
python3.x实现发送邮件功能
May 22 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
手写一个python迭代器过程详解
Aug 27 Python
Python 多线程共享变量的实现示例
Apr 17 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
看看如何用Python绘制小米新版天价logo
Apr 20 Python
使用Django框架创建项目
Jun 10 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
使用python统计文件行数示例分享
2014/02/21 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
深入了解Python 方法之类方法 & 静态方法
2020/08/17 Python
.net面试题
2015/12/22 面试题
高职助产应届生自荐信
2013/09/24 职场文书
高中生学习生活的自我评价
2013/11/27 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
银行求职信范文
2014/05/26 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
医院领导班子整改方案
2014/10/01 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
商场收银员岗位职责
2015/04/07 职场文书
青年联谊会致辞
2015/07/31 职场文书
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers