データは次のとおりです
id ドメイン ポート 電子メール タイプ 名前 値 ttl ルート def リマーク
2390 test.cn 80 123@qq.com 1 www 123.123.123.123 0 0 0
2523 test.cn 80 123@ qq.com 1 www 123.123.123.123 1800 0 0
テーブル内に同じデータが2つあります(ttlとidが違います)ので、最新のレコード(2523など)を保持したいのですが、操作方法を教えてください。
使用する必要があるテスト ステートメントは次のとおりです。データベースは mysql 5.7
リーリー
テストから削除
where (id,
domain
,port
,emailコード>、タイプコード>、名前コード>、値コード>、ルートコード>、定義コード>、コメント
) にはありません (select * from (
domain
,port
,email
,type
,name
,value
,route
,def
,remark
) not in (select * from (
select max(id) id,
domain
,port
,email
,type
,name
,value
,route
,def
,remark
from test group by
domain
,port
,email
,type
,name
,value
,route
,def
,remark
select max(id) id,domain
,port
,email
,タイプ
、名前
、値
、ルート
、def
、remark
domain
、port
、email
、type
、name によるテスト グループからコード>、値コード>、ルートコード>、定義コード>、コメントコード>) tmp)
テストから最大(ID)、ドメイン、ポート、電子メール、タイプ、名前、値、ルート、デフォルト、コメントを選択 GROUP BY ドメイン、ポート、電子メール、タイプ、名前、値、ルート、デフォルト、コメント;
削除スクリプトを生成するための SQL を提供します
リーリー