php - 更新单个查询中匹配条件的最后一条记录

标签 php laravel-5

我想更新匹配条件的最后一条记录。我在代码中获得了多个结果,因此我采用了不同的方式。

$u = user_payments::where('id', $id)->where('staff_id', $staffId)->orderBy('id','desc')->first();
$up = user_payments::where('id', $u->id)->update(['transaction_id' => $transaction_id]);

这里我必须查询两次,所以它调用数据库两次,因为我想优化查询,我尝试如上所述,但我想在单个查询中...我该怎么做?谢谢。

最佳答案

这应该可以满足您的需要。最终只有一个更新脚本在数据库上运行。

$result = user_payments::where('id', $id)
    ->where('staff_id', $staffId)
    ->orderBy('id','desc')
    ->take(1)
    ->update(['transaction_id' => $transaction_id]);

关于php - 更新单个查询中匹配条件的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44083900/

相关文章:

php - 在 php mysql 中显示图像时出错

laravel - htmlentities()期望参数1为字符串,给定对象

laravel-5 - Laravel 5.6 模拟 Guzzle 响应

php - laravel 5.3 中未定义路由 [ payment-data ]

php - 如何在 Laravel 5 中创建自定义错误页面

c# - 像 selenium 这样的 headless 浏览器,但它不会打开实际的浏览器

php - 选择带有空白文本框的标签

php - Silex 2 addListener 触发错误

php - 更新链接表时更新日期时间

php - 从belongsToMany 关系中获取相关ID 数组 - Laravel 5.4