Laravel将2个更新查询重写为1

时间:2015-09-12 13:25:26

标签: php laravel laravel-5

有没有办法将以下查询重写为1个查询?

<head>

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以将它们组合在一个MySQL查询中(如果您正在使用MySQL),如下所示:

UPDATE template_table
     SET default = CASE
        WHEN id = $id THEN 1
        WHEN id <> $id THEN 0
        ELSE default = default
     END

然后您可以使用DB :: raw()将原始查询发送到数据库。

答案 1 :(得分:0)

DB::statement("
    UPDATE templates
    SET default = 
        CASE
            WHEN id = ? THEN 1
            ELSE 0
        END
", [$id]);

没有其他(Eloquent)方式