Python使用sql语句对mysql数据库多条件模糊查询的思路详解

 更新时间:2021年04月12日 14:23:51   作者:杨传伟  
这篇文章主要介绍了Python使用sql语句对mysql数据库多条件模糊查询的思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
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)

Tomorrow the birds will sing.

到此这篇关于Python使用sql语句对mysql数据库多条件模糊查询的思路详解的文章就介绍到这了,更多相关Python mysql多条件模糊查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python优化技巧之利用ctypes提高执行速度

    Python优化技巧之利用ctypes提高执行速度

    ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数。今天我们就来详细探讨下ctypes库的使用技巧
    2016-09-09
  • Pytest接口自动化测试框架搭建模板

    Pytest接口自动化测试框架搭建模板

    这篇文章主要介绍了Pytest接口自动化测试框架搭建模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python 中的 Counter 模块及使用详解(搞定重复计数)

    Python 中的 Counter 模块及使用详解(搞定重复计数)

    Counter 是一个简单的计数器,用于统计某些可哈希对象的数量。它以字典的形式存储元素和它们的计数,这篇文章主要介绍了Python 中的 Counter 模块及使用详解(搞定重复计数),需要的朋友可以参考下
    2023-04-04
  • python pcm音频添加头转成Wav格式文件的方法

    python pcm音频添加头转成Wav格式文件的方法

    今天小编就为大家分享一篇python pcm音频添加头转成Wav格式文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python使用Tkinter制作一个进制转换工具

    Python使用Tkinter制作一个进制转换工具

    在平时工作学习当中,我们经常会编写一些简单的 Python GUI 工具,以此来完成各种各样的自动化任务,下面我们就来看看如何使用Python制作一个进制转换工具吧
    2024-01-01
  • 一文介绍Python中的正则表达式用法

    一文介绍Python中的正则表达式用法

    正则表达式是一种强大的文本匹配和处理工具,广泛应用于各种编程语言中,在Python中,我们可以使用内置的re模块来处理正则表达式,本文将带您从入门到精通,逐步介绍Python中的正则表达式用法,并提供实例演示
    2023-07-07
  • pytorch Dataset,DataLoader产生自定义的训练数据案例

    pytorch Dataset,DataLoader产生自定义的训练数据案例

    这篇文章主要介绍了pytorch Dataset, DataLoader产生自定义的训练数据案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python 单线程和异步协程工作方式解析

    python 单线程和异步协程工作方式解析

    这篇文章主要介绍了python 单线程和异步协程工作方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python实现rest请求api示例

    python实现rest请求api示例

    这篇文章主要介绍了python实现rest请求api示例,需要的朋友可以参考下
    2014-04-04
  • python3+PyQt5实现文档打印功能

    python3+PyQt5实现文档打印功能

    这篇文章主要为大家详细介绍了python3+PyQt5实现文档打印功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论