php - Laravel 递减列值但不是负值

标签 php laravel laravel-5 eloquent laravel-5.2

我知道我可以使用这个查询减少 laravel 中的列值

DB::table('users')->decrement('votes', 5);

但是我想限制这个值不变成负值。

有没有办法用 laravel 做到这一点?

最佳答案

为此您需要使用原始查询。

以下代码应该适用于所有支持 GREATEST 函数的数据库引擎:

DB::table('users')->update(['votes' => DB::raw('GREATEST(votes - 5, 0)')]);

它会将 users 表中的 votes 列减 5,但不会低于零 - 这就是 GREATEST 函数的用途.

关于php - Laravel 递减列值但不是负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40224943/

相关文章:

javascript - 错误 [prerender-spa-plugin] - 无法预呈现所有路线

sql - Laravel 5.3 DB 选择不同的数据库

javascript - 有没有办法在 HTML 中将 PHP 对象作为 JavaScript 参数传递?

php - 记录插入,但不更新mysql

php - 仅替换多个新行

php - 如何使用 AJAX 通过 jquery 上传文本值以及 dropzone 值?

php - 无法使用 Laravel 6.9 安装依赖项

php 和 jquery 图像选择器

php - Laravel Storage::get() 不返回图像的 exif 数据

laravel-5 - 在 laravel 中添加自定义 css/js 文件