我想從文件夾中的一個DB文件中刪除一堆行。連接並計數db文件中的行數,但當我嘗試刪除特定數量的行時,我卡住了。Java sql - 刪除數據庫表中的半行
輸入:
sql = "SELECT COUNT(*) AS id FROM wifi_probe_requests";
...
sql = "DELETE FROM wifi_probe_requests LIMIT " + rowcount/2;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.executeUpdate();
輸出:
54943
[SQLITE_ERROR] SQL error or missing database (near "LIMIT": syntax error)
沒有使用限制工作正常,我可以刪除整個數據庫表,但我想是因爲看到刪除數據庫行半我做的rowcount/2。
UPDATE:
到目前爲止,我已經通過(264352例)發現,其位於正行/ 2的ID,然後得到它的價值解決了這個問題。然後使用該數字來指示將刪除哪些id行(例如id.value < 264352)。
sql = "SELECT COUNT(*) AS id FROM wifi_probe_requests";
int rowcount = COUNT(*);
sql = "DELETE FROM wifi_probe_requests WHERE id < (SELECT id FROM wifi_probe_requests ORDER BY id ASC LIMIT "+ rowcount/2 + ",1)";
rowcount = 50000
Delete valueof.id < valueof.id.50000/2
因此,所有低於位置25000處的id值的id值都將被刪除。
http://stackoverflow.com/questions/1824490/how-do-you-enable-limit-for-delete-in-sqlite – p0rter
什麼:'從wifi_probe_requests中刪除primary_key_column in(從wifi_probe_requests限制中選擇primary_key_column ...)'? –
是的,我嘗試了類似的建議,似乎工作得很好。只是有點奇怪,你需要額外的步驟,但至少它的作品。 – TarikM