gpt4 book ai didi

mysql - Codeigniter IFNULL 在 set() mysql activerecord

转载 作者:行者123 更新时间:2023-11-29 08:03:55 25 4
gpt4 key购买 nike

表xyz中有一个列abc,其数据类型为int,默认值为null。我们假设表中存在特定行,其中字段 abc 的值为 null。

我希望通过多次运行查询将 abc 更改为“其先前的值 + 一些其他值”。第一次更新该列时会出现问题,因为该列的值为空。

向任何内容添加 null 都会返回 null,因此这不起作用:

$this->db->set('abc', $value);

我尝试使用这个:

$this->db->set('abc', "IFNULL(abc, 0) + $value");

但这会产生:

更新xyzSETabc= 'IFNULL(abc, 0) + value'

但是所需的查询是:

更新xyzSETabc= IFNULL(abc, 0) + 值(不带引号来设置要设置的值)

这能实现吗?

这也不起作用:

$this->db->set('abc = IFNULL(abc, 0) + $value');

最佳答案

您可以尝试将第三个参数添加到 FALSe(未转义值)

$this->db->set('abc', 'IFNULL(abc, 0) + $value', FALSE);

或者也许

$this->db->set('abc', 'IFNULL(abc, 0) + '.$value.'', FALSE);

关于mysql - Codeigniter IFNULL 在 set() mysql activerecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23105616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com