php laravel eloquent:是否可以使用SET WHEN构建更新查询

时间:2017-03-14 17:47:05

标签: mysql sql eloquent fluent

UPDATE tbl
   SET colB = CASE colA 
      WHEN a THEN x 
      WHEN b THEN y 
   END
 WHERE colB IN(a, b);

有没有办法用eloquent / fluent构建上述查询?

1 个答案:

答案 0 :(得分:0)

将其拆分为两个更新查询以保持代码简单:

DB::table('tbl')
    ->where('colA', 'a')
    ->whereIn('colB', ['a', 'b'])
    ->update(['colB' => 'x']);

DB::table('tbl')
    ->where('colA', 'b')
    ->whereIn('colB', ['a', 'b'])
    ->update(['colB' => 'y']);