flask框架-多个条件同时查询(sql语句)
介绍:
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" 转载请保留原文链接及作者。