Python SQLite:插入0整数变成NULL
我有一些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和插入值(当值等于0时)会导致数据库里的值不同呢?
使用的SQLite版本是3.3.6。
1 个回答
1
用户 interjay 回答说: "如果值是 0,那么这个值就不会被认为是真的。"
在我的情况中,值被判断为假,所以数据库里的默认空值没有改变。
用户 netcoder 提供的支持文档: https://docs.python.org/2/library/stdtypes.html#truth-value-testing