Java 在SQLite(Android)中为列更新带有IF的表
。您好,我的表的列是:[ID,VALUE,MODIFIED] 如何在sql中进行以下更新(可能很简单,但我没有实现)。 我有一个int=new_值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
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中都不起作用,知道吗?谢谢你的回答,我刚刚修改了我的答案-对不起,我不应该在没有测试的情况下发布!