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 15 Python
Python Web服务器Tornado使用小结
May 06 Python
python判断windows系统是32位还是64位的方法
May 11 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
kafka-python 获取topic lag值方式
Dec 23 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
django xadmin action兼容自定义model权限教程
Mar 30 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 25 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
vue设置全局访问接口API地址操作
2020/08/14 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
python 错误处理 assert详解
2020/04/20 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
家长会邀请书
2014/01/25 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
国际商务专业求职信
2014/07/15 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
奖学金感谢信
2015/01/21 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
Nginx缓存设置案例详解
2021/09/15 Servers