重複の可能性:
重複する行を削除する
これが私のテーブル構造です:
"作成者" (varchar) | "ポイント" (整数) | "本文)
著者は常に同じであり、ボディも同じです。同じ著者のエントリがデータベース全体に複数回出現し、本文が異なるため、著者ごとに削除することはできません。ただし、ポイント列は常に同じではありません。ポイント値が最大の行を保持したい。
SQLite3 と Python を使用しています。
ありがとう
編集:
私はこれを試しましたが、すべての行を削除するだけです。
for row in cur.fetchall():
rows = cur.execute('SELECT * FROM Posts WHERE Author=? AND Body=? AND Nested=? AND Found=?', (row['Author'], row['Body'], row['Nested'], row['Found'],))
for row2 in rows:
delrow = row
if (row['Upvotes'] < row2['Upvotes'] or row['Downvotes'] < row2['Downvotes']):
delrow = row2
cur.execute("DELETE FROM Posts WHERE Author=? AND Body=? AND Upvotes=? AND Downvotes=? AND Nested=? AND Found=?", (delrow['Author'], delrow['Body'], delrow['Upvotes'], delrow['Downvotes'], delrow['Nested'], delrow['Found'],))
dn += 1
print "Deleted row ", dn
私もこれを試しましたが、うまくいきませんでした。
cur.execute("DELETE FROM Posts WHERE Upvotes NOT IN (SELECT MAX(Upvotes) FROM Posts GROUP BY Body);")
私もすべての変更をコミットしているので、そうではありません。SQLite3 モジュールは正しくインストールされており、データベースに書き込むことができます。