我有一些Python代码将整数值插入数据库,如下所示:
if value: #if it's not None
self._conn.execute(
'''UPDATE table_name SET value_holder = ? WHERE
key_one = ? AND key_two = ? and key_three = ?''',
[value, key_one, key_two, key_three])
如果我运行该查询,则表将包含空字段,或者每当值为0时为NULL字段。但是,如果我将查询设置更改为下面,则字段将包含0而不是NULL。
if value==0:
self._conn.execute(
'''UPDATE table_name SET value_holder = ? WHERE
key_one = ? AND key_two = ? and key_three = ?''',
[0, key_one, key_two, key_three])
elif value: #if it's not None
self._conn.execute(
'''UPDATE table_name SET value_holder = ? WHERE
key_one = ? AND key_two = ? and key_three = ?''',
[value, key_one, key_two, key_three])
如何插入0 vs插入值(当值== 0时)导致数据库中的值不同?
SQLite版本3.3.6。
答案 0 :(得分:1)
正如用户间的回答: "如果值为0,则值不为真。"
就我而言,值被评估为false,并且数据库中的默认空值保持不变。
用户netcoder发布的支持文档: https://docs.python.org/2/library/stdtypes.html#truth-value-testing