假设我有以下非常简单的查询:
query = 'SELECT * FROM table1 WHERE id = %s'
我从 python sql 包装器中调用它,在本例中为 psycopg:
cur.execute(query, (row_id))
问题是,如果 row_id 是None
,我想获取所有行,但该查询将返回一个空表。解决这个问题的简单方法是:
if row_id:
cur.execute(query, (row_id))
else:
cur.execute("SELECT * FROM table1")
当然,这是非惯用的,并且对于非平凡的查询会变得不必要地复杂。我想有一种方法可以在 SQL 本身中处理这个问题,但找不到任何东西。什么是正确的方法?