動作をするのですが、DB::rawを使って無理やり書いています。もっと綺麗に書く方法はありますか?
DBはmysqlを使っています。
クエリを2つにわけても良いのですが書き方がわかりません。
詳しい方がいましたら教えてください。よろしくお願いします。
testテーブルのid_1,id_2が同一でupdate_atが最新のもの以外のレコードを削除したいです。
主キーはautoインクリメントのidをもっています。
DB::table('test')->whereNotIn(DB::raw('(updated_at, id_1, id_2)' ), function($query){ $query->select(DB::raw('max(updated_at) as updated_at') ,'id_1', 'id_2') ->from(DB::raw('(select * from test) as temp')) ->groupBy('id_1','id_2'); }) ->delete();
回答1件
あなたの回答
tips
プレビュー