0

現在、データベースに1人のユーザーの100個のメッセージを保持しようとしていますが、100個のうち別のメッセージを削除しようとしています。

私のデータベースはmysqlです。私のSQLは

DELETE FROM userMessage WHERE id = ? limit 100, 9999;

しかし、私のデータベースのバージョンはこのSQLをサポートしていません。

ありがとう:)

4

3 に答える 3

2

多分このようなもの?

DELETE FROM userMessage WHERE id not in
(SELECT id FROM userMessage uM where user_id = ? ORDER BY id DESC LIMIT 100)
于 2012-07-27T07:29:47.300 に答える
1

一時テーブルに100レコードを選択してみませんか。次に、古いテーブルを削除し、後で一時テーブル名の名前を変更します。

于 2012-07-27T07:23:48.053 に答える
0

一意であるidため、このクエリを使用できます-

DELETE t1
FROM
  table1 t1
LEFT JOIN (SELECT * FROM table1 ORDER BY id LIMIT 100) t2 -- Specify your LIMIT values here
  ON t1.id = t2.id
WHERE
  t2.id IS NULL

このクエリは、100以降のすべてのレコードを削除します。

于 2012-07-27T07:30:44.977 に答える