发布之前,我进行了充分的搜索。

我的表结构:


  援助|出价| cid |做了|


其中aidbid一起是主键。

当我使用cid更新where clause for aid, bid的值时,我也想获取did valueupdated row

像这样:

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


上面的查询说:


  致命错误:在...中的非对象上调用成员函数select()


我尝试了这个:


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


就像3个查询。

最佳答案

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

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

在给定的示例中:

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


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

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

10-11 01:42
查看更多