在 Python 3 中用其他类型替换 NULL sqlite3 数据库列值有问题吗?
Issue with replacing NULL sqlite3 database column values with other types in Python 3?
我 运行 遇到了 Python 3 中 sqlite3 模块的问题,我似乎无法弄清楚如何从数据库中替换 NULL
值其他的,主要是字符串和整数。
此命令不执行此操作,但也不会引发任何异常:
UPDATE table SET animal='cat' WHERE animal=NULL AND id=32
数据库 table 列“animal”的类型为 TEXT
,并在未指定其他值的情况下填充了 NULL
。
“id”列是主键的,因此仅具有唯一的整数行索引。
如果定义了“动物”列,而不是 NULL
,则上述命令可以完美运行。
我可以用它替换现有的字符串、整数和浮点数。
我在这里忽略了什么?
谢谢。
SQL 中的 NULL
值很特殊,要将值与它进行比较,您需要使用 IS
和 IS NOT
运算符。所以你的查询应该是这样的:
UPDATE table
SET animal = 'cat'
WHERE animal IS NULL AND id = 32;
NULL
根据定义表示 SQL 中的“未知”,因此将列直接与 =
进行比较也会产生未知结果。
我 运行 遇到了 Python 3 中 sqlite3 模块的问题,我似乎无法弄清楚如何从数据库中替换 NULL
值其他的,主要是字符串和整数。
此命令不执行此操作,但也不会引发任何异常:
UPDATE table SET animal='cat' WHERE animal=NULL AND id=32
数据库 table 列“animal”的类型为 TEXT
,并在未指定其他值的情况下填充了 NULL
。
“id”列是主键的,因此仅具有唯一的整数行索引。
如果定义了“动物”列,而不是 NULL
,则上述命令可以完美运行。
我可以用它替换现有的字符串、整数和浮点数。
我在这里忽略了什么?
谢谢。
SQL 中的 NULL
值很特殊,要将值与它进行比较,您需要使用 IS
和 IS NOT
运算符。所以你的查询应该是这样的:
UPDATE table
SET animal = 'cat'
WHERE animal IS NULL AND id = 32;
NULL
根据定义表示 SQL 中的“未知”,因此将列直接与 =
进行比较也会产生未知结果。