用NULL

时间:2015-11-06 12:54:03

标签: sql sqlite

我有一个sqlite3数据库。其中一列主要包含整数值(正数或负数)。在少数情况下,价值是"未找到"或者"失踪"或其他文字字符串。

我想用NULL替换所有那些非整数值。列类型是原始必需品中的TEXT。

是否有一种聪明的方法可以使用UPDATE ... WHERE子句而不是粗略的东西,比如把它拉到python中来纠正?

2 个答案:

答案 0 :(得分:3)

您可以将UPDATE与正则表达式一起使用,如下所示:

UPDATE MyTable
SET text_column = NULL
WHERE text_column REGEXP '[^-0-9]+'

这将清除包含一个或多个非数字字符的所有字段。

答案 1 :(得分:2)

您可以更新无法将值转换为整数的所有行:

UPDATE MyTable
SET MyColumn = NULL
WHERE CAST(MyColumn AS INTEGER) != MyColumn;