Python SQLite:插入0整数变成NULL

0 投票
1 回答
1111 浏览
提问于 2025-04-18 16:04

我有一些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

撰写回答