有沒有辦法將以下查詢重寫爲1個查詢?Laravel將2個更新查詢重寫爲1個
$this->template->whereId($id)->update(['default' => true]);
$this->template->whereNotIn('id', $id)->update(['default' => false]);
在此先感謝。
有沒有辦法將以下查詢重寫爲1個查詢?Laravel將2個更新查詢重寫爲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 ::原始()發送原始查詢數據庫。
我想'ELSE默認'應該是。並且不需要ELSE – M0rtiis
DB::statement("
UPDATE templates
SET default =
CASE
WHEN id = ? THEN 1
ELSE 0
END
", [$id]);
沒有其他(雄辯)的方式
DB ::僅原料。你能接受嗎? – M0rtiis