Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.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
Java 在SQLite(Android)中为列更新带有IF的表_Java_Android_Sql_Sqlite - Fatal编程技术网

Java 在SQLite(Android)中为列更新带有IF的表

Java 在SQLite(Android)中为列更新带有IF的表,java,android,sql,sqlite,Java,Android,Sql,Sqlite,。您好,我的表的列是:[ID,VALUE,MODIFIED] 如何在sql中进行以下更新(可能很简单,但我没有实现)。 我有一个int=new_值 UPDATE FROM table SET value = new_value,modified= if (new_value==VALUE) then 0 else 1; 查询原始数据并使用if-else语句 if(originalValue == newValue) { // Update query } else { // U

。您好,我的表的列是:[ID,VALUE,MODIFIED]

如何在sql中进行以下更新(可能很简单,但我没有实现)。 我有一个int=new_值

UPDATE FROM table SET value = new_value,modified= if (new_value==VALUE) then 0 else 1;

查询原始数据并使用if-else语句

if(originalValue == newValue) {
    // Update query
}
else {
    // Update query
}

查询原始数据并使用if-else语句

if(originalValue == newValue) {
    // Update query
}
else {
    // Update query
}

为什么不评估它是否在sql之外被修改:

int isModified = newvalue != VALUE ? 1 : 0;
在SQL中:

UPDATE FROM table SET value = new_value, modified = isModified

为什么不评估它是否在sql之外被修改:

int isModified = newvalue != VALUE ? 1 : 0;
在SQL中:

UPDATE FROM table SET value = new_value, modified = isModified

在常规SQL中,您可以这样做:

UPDATE tablename 
    SET value = new_value, 
    modified = 
        CASE
            WHEN new_value = value THEN 0
            ELSE 1
        END

但我不确定SQLite是否支持常规SQL中的CASE

,您可以这样做:

UPDATE tablename 
    SET value = new_value, 
    modified = 
        CASE
            WHEN new_value = value THEN 0
            ELSE 1
        END

但我不确定SQLite是否支持CASE

谢谢您的快速回答Berdon。我实际上就是这样做的。但是我试着将我的程序升级为一个查询,这是可行的吗?提示:将代码压缩为不可理解性不是“升级”,谢谢你的快速回答Berdon。我实际上就是这样做的。但是我试着将我的程序升级为一个查询,这是可行的吗?提示:将代码压缩为不可理解性并不是一个“升级”问题立即浮现在脑海中的是,为什么要用未更改的值更新列?为什么不提前检测更改,如果值已更改,则更新值并进行修改,如果值未更改,则仅更新修改?因为这是一个具有多个值的多行更新问题立即浮现在脑海中的是,为什么要使用未更改的值更新列?为什么不提前检测更改,如果值已更改,则更新值并修改,如果值未更改,则仅更新修改?因为是具有多个值的多行更新在执行查询之前,我没有“oldvalue”。我刚刚收到newvalue,我试图避免查询检索旧值,在执行查询之前,我没有“oldvalue”。我刚刚收到新的值,我试图避免查询检索旧的oneSQLite支持案例,但是这个snipplet在MySQL或Android中都不起作用,知道吗?谢谢你的回答,我刚刚修改了我的答案-对不起,我不应该在没有测试的情况下发布!SQLite支持CASE,但这个snipplet在MySQL或Android中都不起作用,知道吗?谢谢你的回答,我刚刚修改了我的答案-对不起,我不应该在没有测试的情况下发布!