gpt4 book ai didi

python - 查询可选参数

转载 作者:太空狗 更新时间:2023-10-30 02:28:17 25 4
gpt4 key购买 nike

假设我有一个包含年龄和姓名列的用户表。我想写一个函数来查询这个表,要么选择所有的东西,要么根据年龄选择。天真地我可能会这样做

def query(age=''):
query_args = ' WHERE {}'.format(age) if age else ''
db.execute('SELECT * FROM users' + query_args)

显然这是一个可怕的想法,但我不确定处理这种情况的更好方法是什么 - 如果年龄作为参数传递或不传递,编写单独的查询似乎非常难看,尤其是在更多复杂的示例,其中我可能有多个查询参数。

最佳答案

您说得对,构建查询字符串是个糟糕的主意。这个问题不是驱动程序问题。这只是 SQL:

query = """
select *
from users
where
(%(age)s is null or %(age)s = age)
and
(%(name)s is null or %(name)s = name)
"""
parameters = dict(name = None, age = 35)
cursor.execute(query, parameters)

如果某个参数作为 null 传递,则不会被过滤。

关于python - 查询可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com