flask框架-多个条件同时查询(sql语句)

  1. 介绍:
  2. 例子1:
  3. 例子2:

介绍:

1.使用筛选条件去查询表格的数据
2.有可能只用了一个筛选条件,也有可能使用了多个筛选条件进行查询

例子1:

    # 介绍:
    # 要去查询表格的数据,筛选条件有:数据版本、测试人员、项目名称、开发人员

    result_dict = json.loads(request.data)
    version_list = result_dict["version_list"]
    tester_list = result_dict["tester_list"]
    project_value = result_dict["input_project_value"]
    developer_value = result_dict["developer_list"]

    # 项目名称支持模糊查询,需要事先拼接
    word = '%{}%'.format(project_value)
    
    # 基础语句,如果没有使用筛选条件,就返回全部数据
    basic_syntax = "select * from tb_quality_score"
    params = []
    
    # 如果某个筛选条件有值,就添加 (这里设置了参数需要传元祖类型)
    if version_list:
        params.append(" order_number in %s" % (tuple(version_list),))

    if tester_list:
        params.append(" tester in %s" % (tuple(tester_list),))

    if developer_value:
        params.append(" developer in %s" % (tuple(developer_value),))

    if project_value:
        params.append(" project like '%s' " % word)
    
    # 如果筛选条件有值,就进行拼接
    if params:
        basic_syntax = basic_syntax + " where " + " and ".join(params) + " order by id desc ;"
        basic_syntax = basic_syntax.replace(",)", ')')
    
    # 进行查询操作
    result = db_operator(basic_syntax)
    print(result)

  

例子2:

    # 介绍:部分数据是以json格式进行存储
    # demo中的data是一个json类型
    
    # 在MySQL数据库中,如果你的数据字段是JSON格式,你可以使用JSON函数和操作符进行模糊查询
    # ->或->>操作符:用于访问JSON对象的属性或元素。 ->返回的是JSON对象或数组的值,->>返回的是文本形式的值。
    eg:
    SELECT * FROM your_table WHERE data->>'$.name' LIKE '%keyword%';
    # 上述示例中,假设你的表名为your_table,字段名为data,且data字段存储的是JSON数据。
    # 你想要在name属性中模糊匹配包含关键字keyword的记录。


    result_dict = json.loads(request.data)

    cate_id = result_dict["cate_id"]
    name_value = result_dict["name_value_option"]
    type_value = result_dict["type_value_option"]
    ip_value = result_dict["ip_value_option"]
    username_value = result_dict["username_value_option"]

    basic_syntax = "select * from  tb_list_data "
    params = []

    if cate_id:
        params.append(" cate_id=%s" % (cate_id,))
    
    # 目标字段是存放在json格式下面,要查询字段 name_value,进行模糊查询
    if name_value:
        word = '%{}%'.format(name_value)
        params.append(" data -> '$.name_value' like '%s' " % (word,))
    
    # 目标字段是存放在json格式下面,要查询字段 type_value,进行精确查询
    if type_value:
        params.append(" data -> '$.type_value' = '%s' " % (type_value,))

    # 目标字段是存放在json格式下面
    if ip_value:
        word = '%{}%'.format(ip_value)
        params.append(" data -> '$.ip_value' like '%s' " % (word,))

    # 目标字段是存放在json格式下面
    if username_value:
        word = '%{}%'.format(username_value)
        params.append(" data -> '$.username_value' like '%s' " % (word,))

    if params:
        basic_syntax = basic_syntax + " where " + " and ".join(params) + " order by id desc ;"
        basic_syntax = basic_syntax.replace(",)", ')')

    # print(basic_syntax)
    result = db_operator(basic_syntax)
    print(result)

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:flask框架-多个条件同时查询(sql语句)

本文作者:伟生

发布时间:2024-06-18, 22:13:00

最后更新:2025-03-23, 21:04:51

原始链接:http://yoursite.com/2024/06/18/flask_15_pymysql/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏