我正在运行安装了PHP-Activerecord的CodeIgniter应用程序,我需要进行大量删除。 PHP-AR库支持大量更新和删除,但该功能仅采用您要删除/更新的ID。我正在尝试进行大规模删除,其中ID不在列表中。
从id不在(1,2,3 ...,500)
中的表中删除
不幸的是,PHP-Activerecord网站没有任何帮助,他们的论坛是如此可怕的构建(没有搜索......认真?),我真的被卡住了。
编辑请注意, CodeIgniter的内置ORM与PHP-Activerecord不同。我想我会澄清一下。
答案 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')