Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中,如何使用查询生成器从表中删除固定数量的行?_Php_Mysql_Laravel_Laravel 4 - Fatal编程技术网

Php 在laravel中,如何使用查询生成器从表中删除固定数量的行?

Php 在laravel中,如何使用查询生成器从表中删除固定数量的行?,php,mysql,laravel,laravel-4,Php,Mysql,Laravel,Laravel 4,我正在尝试从users表中删除任意五行。我使用了下面的代码 DB::table('users')->take(5)->delete(); 但它会删除该表中的所有行。我将如何克服此问题?您说过要随机删除5行,在这种情况下,这将起作用,我已经测试过: DB::table('users')->whereIn('id', DB::table('users')->orderBy(DB::raw("RAND()"))->take(5)->lists('id'))->

我正在尝试从users表中删除任意五行。我使用了下面的代码

DB::table('users')->take(5)->delete();

但它会删除该表中的所有行。我将如何克服此问题?

您说过要随机删除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')
您可以使用rand()函数以这种方式删除用户

DB::table('users')->DB::table('users')->orderby(RAND())->take(5)->delete();

您可以使用
foreach

$users = DB::table("users")->orderBy(DB::raw("RAND()"))->take(5)->get();
foreach($users as $user){
    DB::table("users")->where("id", $user->id)->delete();
}

看看这个,你会得到你的答案,你不能删除这样的行。你到底想做什么?你可以先获取前5条记录,然后检查user.id是否存在并删除them@GONG:我可以获取任意数量的记录,因为我无法删除所选数量的记录。那是我的problem@AlexeyMezenin:我只想为我的项目随机删除任何五条记录。我将如何使用where()?tahnks实现我的条件供您回复。我只是想删除没有foreach的行。有什么选择吗?为什么不只选择ID并用where删除它们呢?@GONG是的,可能是这样)@manoos尝试更改
take
limit
DB::table('users')->whereIn('id', DB::table('users')->take(5)->lists('id'))->delete();