2011-07-19 13 views
1

私はあなたの助けを必要としています。私はAndroidのデータベースから始めています。私のテーブルを更新するための問題や質問があります(おそらく、愚かな質問ですが、私にとっては難しいです)。AndroidでSQLiteの削除クエリ

私はビデオについての情報を持つテーブルを持っています。列の1つは、ビデオの年代を識別するタイムスタンプです。 タイムスタンプの高い上位10行を除くすべての行を削除したいと思います。

テーブル名は、TABLEで、(重要な)行はKEY_IDあり、そしてKEY_TIMESTAMP場合:

私はQuery1をCONCATできる方法:クエリ

DELETE FROM TABLE WHERE KEY_ID = query1 

SELECT KEY_ID FROM TABLE ORDER BY KEY_TIMESTAMP ASC LIMIT (## dont know what to put here ##) 

をAndroidのSQLiteコードでは? ##の間に何を入れますか?##

+0

http://stackoverflow.com/questions/6745496/how-can-i-limit-the-number-of-rows-in-android-sqlite-table/6745571 #6745571 –

答えて

2

入れ子SELECTでDELETE FROMを使用してみてください。

テストされていない:

DELETE 
FROM TABLE 
WHERE KEY_ID NOT IN 
(
    SELECT TOP 10 KEY_ID 
     FROM TABLE 
     ORDER BY KEY_TIMESTAMP ASC 
     LIMIT 10 
) 
+0

ああ、ずっと良い解決策です!どうもありがとう!両方のクエリをアンドロイドで連結する方法を教えてください。 – Polugern

+0

連結の意味が不明です。私が提供したクエリには、何も追加する必要なしに説明した機能が必要です。 –

+0

私が意味することは:db.delete(TABLE、KEY_ID + "NOT IN" + ## something ##)、またはexecSQL(String sql)を使うべきですか?ありがとう – Polugern

関連する問題