php - 如何使用 Laravel 4.2 批量删除数据库表中不在数组中的行

标签 php laravel eloquent fluent

我想删除表中不在数组中的行。在以下示例中,这将批量删除与 $cards_to_delete 对应的行。

$cards_to_delete = array(1, 2, 3);
Collection::where('username', '=', $username)
    ->whereIn('id', $cards_to_delete)
    ->delete();

我怎样才能删除数组中不存在的所有内容?大致如下:

$cards_to_keep = array(1, 2, 3);
Collection::where('username', '=', $username)
    ->whereIn('id', '!=', $cards_to_keep)
    ->delete();

最佳答案

Laravel 还提供了 ->whereNotIn() 方法:

$cards_to_keep = array(1, 2, 3);
Collection::where('username', '=', $username)
    ->whereNotIn('id', $cards_to_keep)
    ->delete();

关于php - 如何使用 Laravel 4.2 批量删除数据库表中不在数组中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31627305/

相关文章:

php - Laravel Eloquent ORM 中的 join()->where()

php - 使用 php、ffmpeg 和 proc_open 逐帧读取视频

php - 如何以编程方式停止使用特定端口的进程

php - 如何为 Laravel 迁移创建带条件且不带分隔符的 MySQL 触发器?

php - laravel 5.4 中的三个加入和分组

php - Laravel Framework 中的更新正在返回一条新记录

php - Laravel 查询在 id 列上返回 Null id

javascript - 如何将 WKT 转换为 SVG

javascript - 如何在数据库中插入和检索 "html code"?

php - 重定向回 Laravel 中的特定选项卡 Pane