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 set集合类型操作总结
Nov 07 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
解决python报错MemoryError的问题
Jun 26 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
如何更优雅地写python代码
Jul 02 Python
python如何通过pyqt5实现进度条
Jan 20 Python
python3 xpath和requests应用详解
Mar 06 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
python和php哪个容易学
Jun 19 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
python opencv实现图像配准与比较
Feb 09 Python
python实现简单反弹球游戏
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
You might like
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
js分页工具实例
2015/01/28 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
BootStrap中
2016/12/10 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
在Django中实现添加user到group并查看
2019/11/18 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
经典C++面试题一
2016/11/06 面试题
文秘专业应届生求职信
2014/05/26 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
风之谷观后感
2015/06/11 职场文书
给领导敬酒词
2015/08/12 职场文书
AngularJS实现多级下拉框
2022/03/25 Javascript
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫
如何在Python中妥善使用进度条详解
2022/04/05 Python