Android 更新SQLite中的前n条记录

Android 更新SQLite中的前n条记录,android,sqlite,Android,Sqlite,我想从android应用程序更新SQLite数据库中的前n条记录。以下是我到目前为止尝试过的查询。我在order附近遇到语法错误 update label set label_is_used = 1 where label_name !='temp' and label_cnt != 0 order by label_cnt desc limit 3 ------------------------------------ update label set label_is_used = 1 w

我想从android应用程序更新SQLite数据库中的前n条记录。以下是我到目前为止尝试过的查询。我在
order
附近遇到语法错误

update label set label_is_used = 1 where label_name !='temp' and label_cnt != 0 order by label_cnt desc limit 3
------------------------------------
update label set label_is_used = 1 where label_name !='temp' and label_cnt != 0 order by label_cnt limit 3
从中可以看出,这应该在符合语法的情况下工作。

我哪里弄错了?

上面说:

如果SQLite是使用SQLite\u ENABLE\u UPDATE\u DELETE\u LIMIT编译时选项构建的,那么UPDATE语句的语法将使用可选的ORDER BY和LIMIT子句进行扩展

默认情况下不会启用该选项,Android上肯定不会启用

作为一种解决方法,确定子查询中要更新的记录:

UPDATE label
SET label_is_used = 1
WHERE label_id IN (SELECT label_id   -- or whatever you use as ID
                   FROM label
                   WHERE label_name != 'temp'
                     AND label_cnt != 0
                   ORDER BY label_cnt DESC
                   LIMIT 3);

这应该行得通。但是,您知道如何启用该选项并使我的查询工作吗?好奇的。:)哦,只需重新编译并重新安装Android操作系统的这一部分。