表xyz中有一列abc,其数据类型为int,默认值为null。我们假设表中存在一个特定的行,其中字段abc的值为null。
我希望将abc更改为以前的值+其他一些值'通过多次运行查询。第一次更新列时会出现问题,因为它的值为null。
向任何内容添加null都会返回null,因此这不起作用:
$this->db->set('abc', $value);
我尝试使用此代码:
$this->db->set('abc', "IFNULL(
{ABC {1}}
但这会产生:
, 0) + $value");
的xyz UPDATE
{ABC {1}} {ABC {1}}
但所需的查询是:
SET
的xyz = 'IFNULL(
{ABC {1}} {ABC {1}}
(没有用于设置值的引号)
这可以实现吗?
这不起作用:
, 0) + value'
{ABC {1}}
答案 0 :(得分:2)
您可以尝试将第三个参数添加到FALSe(非转义值)
$this->db->set('abc', 'IFNULL(abc, 0) + $value', FALSE);
或者
$this->db->set('abc', 'IFNULL(abc, 0) + '.$value.'', FALSE);