codeigniter ActiveRecord where语句问题

时间:2011-09-22 08:53:52

标签: mysql codeigniter activerecord where-clause

有这个声明,我希望通过codeigniter中的Active Records方式实现它

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

3 个答案:

答案 0 :(得分:1)

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');

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:-2)

这不是积极记录的目标。顾名思义,活动记录对象实例绑定到表中的单个行。如果要以“活动记录方式”执行此操作,则必须检索必须删除数据库的所有记录,将其标记为已删除并提交更改。您可以做的最好的事情是从codeignither获取连接实例并手动执行查询。