我正在尝试从用户表中删除任意五行。我使用了以下代码。
DB::table('users')->take(5)->delete();
但它会删除该表中的所有行。我将如何克服这个问题?
答案 0 :(得分:2)
你说你要删除5行随机,在这种情况下这将有效,我已经测试过了:
DB::table('users')->whereIn('id', DB::table('users')->orderBy(DB::raw("RAND()"))->take(5)->lists('id'))->delete();
它将需要5个随机ID,然后只用两个查询删除带有这些ID的行:
select `id` from `users` order by RAND() asc limit 5
delete from `users` where `id` in ('786', '186', '82', '578', '232')
答案 1 :(得分:0)
您可以使用rand()函数并以这种方式删除用户
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject(listOfPlayers, forKey: "listOfPlayers")
userDefaults.synchronize()
答案 2 :(得分:0)
您可以使用foreach
$users = DB::table("users")->orderBy(DB::raw("RAND()"))->take(5)->get();
foreach($users as $user){
DB::table("users")->where("id", $user->id)->delete();
}
答案 3 :(得分:0)
DB::table('users')->whereIn('id', DB::table('users')->take(5)->lists('id'))->delete();