如何在php-activerecord中大量删除id不在列表中?

时间:2012-08-22 02:27:27

标签: codeigniter codeigniter-2

我正在运行安装了PHP-Activerecord的CodeIgniter应用程序,我需要进行大量删除。 PHP-AR库支持大量更新和删除,但该功能仅采用您要删除/更新的ID。我正在尝试进行大规模删除,其中ID不在列表中。

  

从id不在(1,2,3 ...,500)

中的表中删除

不幸的是,PHP-Activerecord网站没有任何帮助,他们的论坛是如此可怕的构建(没有搜索......认真?),我真的被卡住了。

编辑请注意, CodeIgniter的内置ORM与PHP-Activerecord不同。我想我会澄清一下。

2 个答案:

答案 0 :(得分:3)

有点晚了,但这可能有助于其他人。在 PHPActiveRecord 中,以这种方式执行:

$ids_to_delete = array(1,2,3);
YourModel::delete_all(array('conditions' => array('id NOT IN (?)', $ids_to_delete)));

参考:http://www.phpactiverecord.org/docs/ActiveRecord/Model#methoddelete_all

答案 1 :(得分:2)

SInce活动记录实际上是用函数构建字符串查询,你可以使用这个方法: - 将您的列表作为字符串 - 提出此查询:$ this-> db-> where('id not in',$ string) - > delete('table')