Php 无法更新Codeigniter中的原始查询

Php 无法更新Codeigniter中的原始查询,php,mysql,codeigniter,codeigniter-3,Php,Mysql,Codeigniter,Codeigniter 3,我需要在数据库中更新一个稍微复杂的查询,因此我使用$this->db->query($sql,array($userId))更新我的表,但该表未得到更新 更新查询如下: UPDATE users usr1 SET dummy_id= (SELECT concat('D',UPPER(c.flag_lang), LPAD(usr1.id , 7, 0)) new_did FROM country c,desktop d WHERE usr1.id=d.user_id AND d.country_i

我需要在数据库中更新一个稍微复杂的查询,因此我使用
$this->db->query($sql,array($userId))
更新我的表,但该表未得到更新

更新查询如下:

UPDATE users usr1
SET dummy_id= (SELECT concat('D',UPPER(c.flag_lang), LPAD(usr1.id , 7, 0)) new_did FROM country c,desktop d
WHERE
usr1.id=d.user_id
AND d.country_id=c.id
and user_type='dummy')
WHERE usr1.user_type='dummy' and usr1.id = ?
如果我通过MySql客户端执行上述相同的查询,那么我的表将得到更新

但是,如果我在活动记录中将查询写为:

$this->db->where('id', $userId);
$this->db->set('dummy_id', 'CUSTOM');
$this->db->update('users');
表确实得到了正确的更新,但是,由于查询很复杂,我不得不使用原始查询,但不知何故它不起作用


请求相同的协助。

使用
$this->db->last_query()打印您的查询
并查看codeigniter是如何解释它的。嗨@mPareek,我也尝试过检查它,但没有帮助:(因此,上一次查询的结果在mysql客户端中工作,但通过脚本执行时,同一个查询不工作?@SharadSoni共享$this->db->last_query()的输出)