我有以下2个查询,我想知道我是否可以合并为单个语句。
$sql = "SELECT sale_qty FROM sale_device WHERE id = '$id' ";
和
$sql = "UPDATE device SET qty = $sale_qty WHERE id = $deviceId";
我想运行一个选择查询以从一行获取设备的当前数量,然后在更新查询中使用该值减一来设置新数量,但不允许它在0下
这是可能还是建议加入?或者只运行2个查询会更容易吗?
答案 0 :(得分:0)
是。我认为这样做你想要的:
UPDATE device
SET qty = (SELECT greatest(sale_qty - 1, 0)
FROM sale_device
WHERE id = '$id'
)
WHERE id = $deviceId
答案 1 :(得分:0)
如果我正确理解你的问题,我认为这应该有效:
UPDATE Device D
JOIN Sale_Device SD ON D.Id = SD.DeviceId
SET D.qty = GREATEST(SD.sale_qty-1,0)
WHERE SD.Id = '$id'
这假定Sale_Device
表格有DeviceId
字段。