如何使用单个查询获取上次更新的行

时间:2013-08-05 07:06:06

标签: mysql

在发布之前我搜索得足够多了。

我的表格结构:

  援助|出价| cid |做了|

aidbid合在一起是主键

当我使用cid更新where clause for aid, bid的值时,我还想获得did value的{​​{1}}。

这样的事情:

updated row

以上查询说:

  

致命错误:在...

中的非对象上调用成员函数select()

我试过了:

  

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

这就像是3个查询。

1 个答案:

答案 0 :(得分:0)

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

MySQL不支持您尝试做的事情。您需要至少运行2个查询,并且由于您是第一次获取值并且已经知道要更新的值,因此您还可以在{{{{{{{{{{{{{{{{{{{{ 1}}。

在你给出的例子中:

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()