【发布时间】:2014-04-16 09:42:14
【问题描述】:
表xyz中有一个列abc,其数据类型为int,默认值为null。我们假设表中存在 abc 字段的值为 null 的特定行。
我希望通过多次运行查询将 abc 更改为“它的先前值 + 某个其他值”。第一次更新列时出现问题,因为它的值为空。
将 null 添加到任何内容都会返回 null,因此这不起作用:
$this->db->set('abc', $value);
我尝试改用这个:
$this->db->set('abc', "IFNULL(abc, 0) + $value");
但这会产生:
UPDATExyzSETabc= 'IFNULL(abc, 0) + value'
但所需的查询是:
UPDATExyzSETabc= IFNULL(abc, 0) + value
(要设置的值不带引号)
这可以实现吗?
这也不起作用:
$this->db->set('abc = IFNULL(abc, 0) + $value');
【问题讨论】:
标签: mysql codeigniter activerecord