php - Laravel 用例更新查询

标签 php mysql laravel eloquent sql-update

我有这样的情况,我想更新 bool 字段,即如果它是 0,则用 1 更新它,反之亦然。我已经编写了 mysql 查询,但由于我是 laravel 的新手,所以我在将它转换为 laravel 支持的格式时遇到了一些麻烦。

以下是我的查询:

update super_admins set status = CASE WHEN status = 0 then 1 else 0 end
where primary_key = 3;

这方面的一个小线索将是一个很大的帮助。谢谢你

最佳答案

使用变量

$status = true; //we assume status is true (1) at the begining;
SuperAdmin::where('id', 3)->update([
    'status' => !$status //becomes false (0)
]);

使用查询生成器

DB::table('super_admins')
->where('id', 3)
->update([
    'status' => !$status
]);

如果变量未知,您有一些方法。获取并切换它。

$sadmin = SuperAdmin::find(3);
$sadmin->status = !$sadmin->status;
$sadmin->save();

直接在查询中

DB::update('update super_admins set status = !status where primary_key = ?', [3]);

关于php - Laravel 用例更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42572924/

相关文章:

php - Laravel 需要 Mcrypt PHP 扩展

java - 我如何从 java swing 程序打开一个 php 文件?

php - 如果列中的所有行都为 true,则返回 true

Php在单选按钮上显示随机记录[测验]

php - Laravel 尝试将数据传递给 View 时 undefined variable

php - mysql 服务器中的错误 2006 已消失

php - 停止运行 ajax 调用

mysql - 使用 groupby 和 orderby 进行 MySQL 查询的性能问题

php - 上传图片时在 null 上调用成员函数 storeAs()

php - Laravel:错误 [PDOException]:在 PostgreSQL 中找不到驱动程序