这是我的查询:
UPDATE tbl_pedidos_produtos SET status = CASE
WHEN id IN (SELECT produto_id FROM tbl_pedidos_cotacaos_produtos) THEN 4
ELSE 3 END WHERE pedido_id = ".$produto->itens[$t]->pedido_id
这个“WHEN id IN (...)”有效吗?我怎样才能做这样的测试?
最佳答案
在更新语句中使用 left join
子句应该可以解决问题:
UPDATE tbl_pedidos_produtos pp
LEFT JOIN tbl_pedidos_cotacaos_produtos pcp ON pp.id = pcp.produto_id
SET pp.status = CASE WHEN pcp.produto_id IS NULL THEN 4 ELSE 3 END
WHERE pedido_id = ".$produto->itens[$t]->pedido_id
关于php - 如何在 IN 中正确使用 CASE WHEN/THEN/ELSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34367543/