gpt4 book ai didi

mysql - 如何使用单个查询获取最后更新的行

转载 作者:行者123 更新时间:2023-11-30 01:25:28 26 4
gpt4 key购买 nike

在发布之前我已经进行了足够的搜索。

我的表格结构:

aid | bid | cid | did |

哪里aid , bid在一起就是主键

当我更新 cid 的值时使用where clause for aid, bid我也想得到did value updated row的.

类似这样的事情:

$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');

上面的查询表示:

Fatal error: Call to a member function select() on a non-object in...

我尝试过:

How to get ID of the last updated row in MySQL?

这相当于 3 个查询。

最佳答案

我建议获取您要更新的值,将其 ID 存储在数组中,然后使用 UPDATE 运行 WHERE id IN (1, 2, ...)

MySQL 不支持您尝试执行的操作。您需要运行至少 2 个查询,并且由于您是第一次获取值并且已经知道要更新哪些值,因此您还可以重新创建新行及其值,而无需在 UPDATE 之后使用查询。

在您给出的示例中:

$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');

set()where() 以及 select() 返回一个基于查询构建的对象。但是 update() 返回一个值,该值是结果,并且没有名为 select() 的函数,而不是 set()where()

关于mysql - 如何使用单个查询获取最后更新的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052323/

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