【问题标题】:SQLite: update every 'null' string record in databaseSQLite:更新数据库中的每个“空”字符串记录
【发布时间】:2020-05-21 12:19:52
【问题描述】:

我不确定这是我将 CSV 导入数据库时​​的错误,还是在 CSV 文件本身上,但几乎每条应该为空的记录现在都有一个“空”字符串值。

有问题的列具有整数或浮点数据类型,它们根本不是字符串...

是否有一种相当快速的方法来更新整个数据库并用真正的空值替换每个“空”记录?

如果不是整个数据库,一个表也可以,因为我只有 3 个表。 (但无论如何学习会更好)

我正在尝试做类似的事情:

选择 DATABASE 中的所有 'NULL' 值并用 =NULL 替换

***问题是针对 SQLite 的,我知道有针对 SQL Server 或其他 SQL 类型的解决方案,但找不到针对 SQLite 的解决方案

【问题讨论】:

    标签: string sqlite null


    【解决方案1】:

    如果您的 sqlite 版本为 3.8.5 或更高,您可以将 NULL 字符串替换为 NULL,如下所示

    UPDATE
        table_name
    SET
        column_name = REPLACE(column_name,'NULL','');
    

    但问题是:您应该为数据库的每个表中的每一列执行此操作。

    参考文献

    编辑:冗长的方法

    在这种方法中,我们将从sqlite文件中取出数据并使用代码编辑器查找和替换

    第1步

    从数据库中取出所有数据并删除原始数据。

    sqlite3> .mode insert
    sqlite3> .output filename.sql
    sqlite3> select * from table_name;
    sqlite3> delete from table_name;
    
    第2步

    查找和替换来自这个filename.sql的数据

    NULL 替换为空,并将table 替换为table_name

    第 3 步

    将所有数据导入回表

    sqlite3> .read filename.sql
    

    在此之后关闭您的终端/cmd 并再次打开 sqlite 数据库并检查该表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2012-01-11
      • 2019-03-13
      • 2021-11-16
      • 1970-01-01
      • 2011-09-23
      相关资源
      最近更新 更多