1

DELETEから最新の 20 レコードを取得しようとしてmysqlいます。これは、最後の 20 レコードになることを意味します。問題は、どうすればこれを行うことができるかということです。私は何かを試しましdelete from MyTable limit 20たが、古い20レコード(最初の20レコードを意味します)を削除します。この質問
を見たことがありますが、問題は で、プライマリ フィールドまたは自動インクリメント フィールドがありません。私の問題についてよく説明していただければ幸いです。解決策をご案内します。MyTable

4

3 に答える 3

0

すべてのDBシステムで最も速いのは、列を選択して新しい表に挿入し、古い表を削除して新しい表の名前を古い表に変更することです:

-- Assuming you have 100 records and want to drop the latest 30
create table `new_temp` as 
select * from `old_table`
limit 70;

drop table `old_table`;

alter table `new_temp` rename to `old_table`;

制限の計算にいくつかのロジックを入れることができますが、それはあなたを導くはずです.

于 2015-05-20T15:24:31.967 に答える