【发布时间】:2018-12-23 08:50:46
【问题描述】:
这可能不是一个新问题,但在谷歌搜索和挖掘 SO 一段时间后,我一直无法找到合适的解决方案。我想根据是否设置变量将条件 AND 添加到我的 WHERE 子句中。
我可以在字符串格式中加入一个三元组,但这似乎不是一个好的解决方案。
def run_query(start_date, end_date, value):
query = """
SELECT * FROM table WHERE value = %(value)s {date_clause}""".format(date_clause = "AND start_date >= %(start_date)s AND end_date <= %(end_date)s" if start_date is not None and end_date is not Null else "")
cursor.execute(query, {"start_date": None, "end_date": None, "value": value})
【问题讨论】:
标签: python postgresql psycopg2