作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有一个包含年龄和姓名列的用户表。我想写一个函数来查询这个表,要么选择所有的东西,要么根据年龄选择。天真地我可能会这样做
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/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!