从CodeIgniter中的子查询中获取值

时间:2014-07-23 22:22:06

标签: php codeigniter codeigniter-2

问题是我不知道是否有办法通过更新操作从子查询中获取值,我尝试做的查询就像我的模型的示例代码一样:

$query = "UPDATE some_table SET value_1 = ((SELECT value_2 FROM other_table WHERE id = 2) + 1) WHERE id = 2";

$this->db->query($query);

我希望你能帮助我,或者至少让我知道另一种方法来使用活动记录

PD我正在使用CodeIgniter框架

2 个答案:

答案 0 :(得分:1)

相当于

UPDATE some_table SET value_1 = ((SELECT value_2 FROM other_table WHERE id = 2) + 1) WHERE id = 2
ActiveRecord中的

可能是:

$value_2 = $this->db->get_where('other_table', array('id' => 2))[0];
$data = array('value_1', $value_2 + 1);
$this->db->update('some_table', $data, array('id' => 2));

答案 1 :(得分:0)

我没有使用Codeigniter,但试试这个:

$query = "UPDATE some_table st SET st.value_1 = ((SELECT ot.value_2 FROM other_table ot WHERE ot.id = 2) + 1) WHERE st.id = 2";

$this->db->query($query);