有没有办法将以下查询重写为 1 个查询?
$this->template->whereId($id)->update(['default' => true]);
$this->template->whereNotIn('id', $id)->update(['default' => false]);
提前致谢。
最佳答案
您可以像这样将它们组合在一个 MySQL 查询中(如果您使用的是 MySQL):
UPDATE template_table
SET default = CASE
WHEN id = $id THEN 1
WHEN id <> $id THEN 0
ELSE default = default
END
然后您可以使用 DB::raw() 将原始查询发送到数据库。
关于php - Laravel 将 2 个更新查询重写为 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32539352/