|
|
1
1
|
|
|
2
3
使用:“从测试表中选择*,其中(a=?或a为空)和(b=?或b为空)” 这将选择a与提供的值完全匹配的情况,并在列中包含空值——如果这是您想要的。 |
|
|
3
1
您始终可以使用三元运算符将“=”切换为“IS”:
不过,用一句话来表达这一点并不十分优雅,而只是为了展示:
|
|
|
4
0
|
|
|
5
0
更好的解决方案(或至少是更通用的解决方案)是,如果您的SQL方言支持
自从
|
|
|
6
0
到目前为止,以下内容已经在python-sqlite3上进行了测试,但它应该适用于其他DB类型,因为它非常通用。方法与@MoshiBin的回答相同,但有一些补充: 以下是使用cursor.execute()常规语法的表单,因此使用此表单时不支持null变量:
除此之外,如果变量为文本类型,还需要包含引号:
最后,如果一个变量本身可以包含一个引号,你还需要通过加倍来转义它:
:
(感谢@BillKarwin answer )
|