Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加基于条件的列选择条目后的Android Sqlite_Android_Sql_Sqlite_Null_Alter Table - Fatal编程技术网

添加基于条件的列选择条目后的Android Sqlite

添加基于条件的列选择条目后的Android Sqlite,android,sql,sqlite,null,alter-table,Android,Sql,Sqlite,Null,Alter Table,因此,当我试图将已删除的条目标记为“deleted”值为“1”而不是删除它时,就发生了这种情况 我在我的应用程序中使用altertable“+TABLE_NAME+“addcolumn”+NEW_column_NAME+“”+type+”向数据库添加了一列;”;并在数据库提供程序中进行了其他适当的更改(插入0时),但是,发生了一些奇怪的事情 添加后,会发生以下情况: SELECT*FROM TABLE_NAME-返回所有行(如预期) SELECT*FROM TABLE_NAME,其中NEW_CO

因此,当我试图将已删除的条目标记为“deleted”值为“1”而不是删除它时,就发生了这种情况

我在我的应用程序中使用
altertable“+TABLE_NAME+“addcolumn”+NEW_column_NAME+“”+type+”向数据库添加了一列;”;
并在数据库提供程序中进行了其他适当的更改(插入0时),但是,发生了一些奇怪的事情

添加后,会发生以下情况:

  • SELECT*FROM TABLE_NAME
    -返回所有行(如预期)
  • SELECT*FROM TABLE_NAME,其中NEW_COLUMN_NAME=1
    返回NEW_COLUMN_NAME=1的行(如预期)。 但是,
  • SELECT*FROM TABLE_NAME,其中NEW_COLUMN_NAME=0
    返回新插入的行(如预期)
  • SELECT*FROM TABLE\u NAME,其中NEW\u COLUMN\u NAME!=1
    仅返回新插入的行(而不是旧行)
  • SELECT*FROM TABLE\u NAME,其中NEW\u COLUMN\u NAME=null
    不返回任何内容
  • 安卓是否不遵守或我是否遗漏了什么

    在Android 2.2模拟器中运行

    谢谢。

    这个:

    SELECT * FROM TABLE_NAME WHERE NEW_COLUMN_NAME = null
    
    将在几乎任何数据库中返回空行集,因为在SQL中,表达式
    NULL=x
    对于所有
    x
    (即使
    x
    为NULL)都是false。请尝试以下操作:

    SELECT * FROM TABLE_NAME WHERE NEW_COLUMN_NAME IS NULL
    
    类似的空值问题将适用于此问题:

    SELECT * FROM TABLE_NAME WHERE NEW_COLUMN_NAME != 1
    
    因此,请尝试:

    SELECT * FROM TABLE_NAME WHERE NEW_COLUMN_NAME != 1 OR NEW_COLUMN_NAME IS NULL
    
    相反

    这不是特定于SQLite或Android的,这只是正常的SQL行为。如果您不一定需要在列中允许空值,请使用
    NOT NULL
    (可能是默认值)创建它们,以避免一些混乱和挫折