Python 如何从函数中查询数据
该函数用于查询数据库中的事务。我可以让他们单独工作。是否有一种方法可以让函数根据客户名称和日期范围查询数据,而不必再做另一个“if”语句Python 如何从函数中查询数据,python,sqlite,function,Python,Sqlite,Function,该函数用于查询数据库中的事务。我可以让他们单独工作。是否有一种方法可以让函数根据客户名称和日期范围查询数据,而不必再做另一个“if”语句 def query_data(c, dateRange=None, customer_name=None, customer_id=None, customer_date=None): if customer_name is not None: query_where = 'customer_name=?' query
def query_data(c, dateRange=None, customer_name=None, customer_id=None, customer_date=None):
if customer_name is not None:
query_where = 'customer_name=?'
query_args = [customer_name]
query_where = f'{query_where}'
if customer_id is not None:
query_where = 'customer_name=(SELECT customer_name FROM customers WHERE customer_id=?)'
query_args = [customer_id]
query_where = f'{query_where}'
if customer_date is not None:
query_where = 'order_date=?'
query_args = [customer_date]
query_where = f'{query_where}'
if dateRange is not None:
split_date = dateRange.split(",")
query_where = 'order_date BETWEEN DATE(?) AND DATE(?)'
query_args = [split_date[0], split_date[1]]
query_where = f'{query_where}'
query_string = f"SELECT * FROM transactions WHERE {query_where}"
c.execute(query_string, query_args)
return c.fetchall()
将您的子查询放入一个类似于
subquerys=['subquery1','subquery2']
的列表中,然后用'和'.join(subquerys)
组合子查询。使用现有的轻量级ORM或SQL builder库(,)。Maurice可能是对的。根据您的使用情况,您需要小心SQL注入漏洞和恶意用户造成的破坏。