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