我有这样的代码:
$id = 5;
$a = 1;
$b = ($a === 2 ? 1 : 2);
DB::table('table')->where('id', $id)->where('value', $a)->update(['new_value' => 1]);
DB::table('table')->where('id', $id)->where('value', $b)->update(['new_value' => 2]);
是否可以在 1 次中完成这 2 个查询?
最佳答案
您不能为此使用查询构建器。使用 DB::statement
代替:
DB::statement('UPDATE table SET new_value = CASE
WHEN value = ? THEN ?
WHEN value = ? THEN ?
END WHERE id = ?', [
$a, 1,
$b, 2,
$id,
]);
关于php - 将 2 个查询连接到 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193925/