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 ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
Python实现读取json文件到excel表
Nov 18 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
python中ASCII码和字符的转换方法
Jul 09 Python
python实现彩票系统
Jun 28 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
python实现在函数中修改变量值的方法
Jul 16 Python
微信小程序python用户认证的实现
Jul 29 Python
Django实现文件上传下载
Oct 06 Python
python输出pdf文档的实例
Feb 13 Python
通过实例了解python__slots__使用方法
Sep 14 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
PHP图片水印类的封装
2017/07/06 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
7个JS基础知识总结
2014/03/05 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
就业推荐表自我鉴定
2014/03/21 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
村委会换届选举方案
2014/05/03 职场文书
机关作风建设自查报告
2014/10/22 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书