Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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_Mysql_Database_Sqlite - Fatal编程技术网

如何更新部分数据库-Android SQLite

如何更新部分数据库-Android SQLite,android,mysql,database,sqlite,Android,Mysql,Database,Sqlite,我是android新手。我正在使用SQLite数据库来存储数据。我在这个数据库中有2列,其中包含每个用户的唯一数据 问题是当用户获得更新时,更新将覆盖个人数据。我想更新除2列之外的数据库 这是我的初始化数据库: INSERT INTO WORDS (_id, unlocked,solved,score,word,letters,image,suggestion) VALUES (1,1,0,0,'example','example','pics/example.png','example');

我是android新手。我正在使用SQLite数据库来存储数据。我在这个数据库中有2列,其中包含每个用户的唯一数据

问题是当用户获得更新时,更新将覆盖个人数据。我想更新除2列之外的数据库

这是我的初始化数据库:

INSERT INTO WORDS (_id, unlocked,solved,score,word,letters,image,suggestion) VALUES (1,1,0,0,'example','example','pics/example.png','example');
如您所见,“已解决”和“分数”的值为0。我不想更新这些值。因此,我不想在更新之前删除整个数据库,我希望保留这两个值,并确保更新不会覆盖这些数据。

这样使用

UPDATE table_name SET  column_name1='value', column_name2 = 'value1' WHERE condition_column='value'

您可以使用weather DB表检查它是否包含该用户id,如果不包含,则按照您的操作插入查询 如果找到记录,只需执行updateQuery:

UPDATE WORDS set unlocked = 1, word = 'example',letters = 'example',image ='pics/example.png',suggestion='example' WHERE _id=1;

我不得不说,你需要研究一下,因为这个标签很琐碎。所以我建议你多读一些关于。 这可以是:

    DatosSQLiteHelper usdbh = new DatosSQLiteHelper(this, "myDatabase", null, 1);
    SQLiteDatabase db = usdbh.getWritableDatabase();
if(db != null)
    {
        //add all atributes for update
        ContentValues registre = new ContentValues();
        registro.put("myvar1", "value1");
        registro.put("myvar2", "value2");
        registro.put("myvar3", "value3");

        int numcol = db.update("mytable", register, "_id_="+1, null);
        if (numcol == 1)
        {
            Toast.makeText(this, "success", Toast.LENGTH_SHORT).show();
        }

    }

只需使用更新查询,这样我就不需要删除数据库,只需在更新时运行更新查询?是的,这是真的。只需查看下面的答案,我同意此评论。参见上的示例