Codeigniter 2.2 - 使用左连接和多个where子句的Active Record更新

时间:2015-05-27 21:52:27

标签: php mysql codeigniter activerecord

我有以下SQL:

UPDATE msh_leads ml
LEFT JOIN msh_leads_disposition_log dl
ON ml.id = dl.lead_id
SET ml.assigned_to = null
WHERE ((dl.disposition_id != 6 AND dl.disposition_id != 3) OR (dl.disposition_id IS NULL))
AND (ml.assigned_to = ? AND ml.decline = 0 AND ml.subcategory_id = ?)

创建这个有一些逻辑(根据某些情况,其中一些来来往往)所以我希望在Codeigniter(2.2)Active Record中重新创建它。我不确定如何将连接添加到更新或如何将多个复杂的where语句添加到更新。

1 个答案:

答案 0 :(得分:3)

这会帮助你。试试这个。

  

注意:您需要将您的值置于,否则它会抛出错误1064

$this->db->set('ml.assigned_to', 'null');
$this->db->where('ml.assigned_to = ?');
$this->db->where('((dl.disposition_id != 6 AND dl.disposition_id != 3) OR (dl.disposition_id IS NULL))');
$this->db->where('ml.decline = 0');
$this->db->where('ml.subcategory_id = ?');
$this->db->update('msh_leads ml join msh_leads_disposition_log dl on ml.id = dl.lead_id');