Mysql 如何使用单个查询获取最后更新的行
在发布之前,我搜索了足够多的内容 我的表格结构:Mysql 如何使用单个查询获取最后更新的行,mysql,Mysql,在发布之前,我搜索了足够多的内容 我的表格结构: $this->db->set('cid', 1, FALSE) ->where(array( 'aid' => $a_id, 'bid' => $b_id )) ->update('my_table') ->select('did');
$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');
援助|投标| cid |没有|
其中,aid
,bid
一起是主键
当我使用where子句更新cid
的值作为辅助时,bid
我还想获得更新行的did值
类似这样的内容:
$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');
上述查询显示:
$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');
致命错误:对中的非对象调用成员函数select()
我试过这个:
$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');
这类似于3个查询。我建议获取要更新的值,将它们的id存储在一个数组中,然后使用更新,其中id位于(1,2,…)
MySQL不支持您尝试执行的操作。您需要运行至少两个查询,并且由于您第一次获取值,并且已经知道要更新的值,因此您还可以在更新
后重新创建新行及其值,而无需使用查询
在您给出的示例中:
$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');
set()。但是update()
返回一个值,该值是结果,没有名为select()
的函数,也没有set()
和where()
的函数。为什么使用更多查询会有问题?