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


有没有一种方法可以雄辩/流利地建立以上查询?

最佳答案

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

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']);

关于mysql - php laravel Eloquent :是否可以使用SET WHEN建立更新查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42793081/

10-14 15:16