codeigniter ActiveRecord where语句问题



是有这个语句,我想让它通过活动记录的方式在codeigniter

DELETE FROM TABLE 
(col1 = value AND col2 = value2 ) OR (col1 = value2 AND col2 = value );

CodeIgniter Active Record在查询中混合AND和OR是不切实际的。

您可能需要手动构建一些查询,例如:

$this->db->where("col1 = $value AND col2 = $value2");
$this->db->or_where("col1 = $value2 AND col2 = $value");
或者,在您的示例中,只有两个特定的列和两个值,下面的想法也应该起作用:
$this->db->where_in('col1', array($value, $value2));
$this->db->where_in('col2', array($value, $value2));
$this->db->where('col1 != col2');

试试这个:

$this->db->where('col1', $value1);
$this->db->where('col2', $value2);
$this->db->delete($table);

这不是活动记录的目标。顾名思义,活动记录对象实例绑定到表中的单行。如果您想以"活动记录方式"做到这一点,您必须检索所有必须删除数据库的记录,将它们标记为已删除并提交更改(这是多余的)。最好的方法是从codeignither获取连接实例并手动执行查询。

最新更新