繁体   English   中英

Laravel 5.4 不使用where 子句更新表中的所有记录

[英]Laravel 5.4 update all records in table without using where clause

我正在尝试使用 Laravel 5.4 中的单个雄辩查询更新表中的所有记录

Currency::update(['default'=>0]);

我期望此查询将更新表中的所有记录,但此查询不起作用。 它期待 where 子句,我不想​​使用 where 子句放置任何条件,我只想更新表中的所有记录。

我没有从 laravel 文档中得到任何答案。

表结构在此处输入图片说明

MySQL 有一个安全的更新服务器模式,它不允许更新发生,除非语句有一个涉及主键的WHERE子句。 如果您的 MySQL 以这种模式运行,那么欺骗它的一种方法是使用WHERE id = id ,如下所示:

DB::table('Currency')
        ->where('id', 'id')
        ->update(['default' => 0]);

如果您的 MySQL 服务器运行 SQL_SAFE_UPDATES 模式,您可以像这样使用“where”。 或者另一个包含所有结果的“where 子句”。

Currency::where('id', '>', 0)->update(['default' => 0]);

Product::query()->update(['default' => 0, ]);

更新表中所有行的简单查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM