限制SQLITE DB中删除的行数

时间:2014-01-03 18:25:09

标签: android sql sqlite

有人知道一种限制使用sql DELETE语句时删除的行数的方法吗?我只需要删除一次保存一定值的行,而不是删除值的每个实例。我的理解是LIMIT子句不能添加到SQLITE中的DELETE语句中。现在,我看不到一种方法来限制仅使用_id删除的行数,因为我不知道将提前删除哪个行_id;根据变量中保存的值删除行,它们可以位于数据库中的任何位置。我希望这是有道理的。这是删除声明:

String sql = "DELETE FROM strategyTotal WHERE strategy_prices = (?)" ;
db.execSQL(sql, new Double[] {subtractedStrategyPrice });

2 个答案:

答案 0 :(得分:2)

使用子查询:

String sql = "DELETE FROM strategyTotal WHERE _id IN (SELECT _id FROM strategyTotal WHERE strategy_prices = (?) LIMIT 1);" ;
db.execSQL(sql, new Double[] {subtractedStrategyPrice });

答案 1 :(得分:0)

    delete from tablename where rowid in (
    select rowid from tablename condition LIMIT 1)

尝试上述解决方法,或者您可能需要启用SQLITE ENABLE UPDATE DELETE LIMIT 我的查询只是一个例子。用你自己的查询替换它。