Tom*_*Tom 0 mysql database join where-clause
我有以下类型的SQL:
UPDATE photo AS f
LEFT JOIN car AS c
ON f.car_id=c.car_id
SET f.photo_status=1
, c.photo_count=c.photo_count+1
WHERE f.photo_id IN ($ids)
Run Code Online (Sandbox Code Playgroud)
基本上,两个表(car&photo)是相关的.$ ids中的列表包含唯一的照片ID,例如(34,87,98,12).通过查询,我将该列表中每张照片的状态设置为表格中的"1" photo,同时car在手边的桌子中增加照片计数.
它有效,但有一个障碍:因为列表可以包含多个与同一辆汽车相关的照片ID,所以照片计数只会增加一次.如果列表中有10张照片与同一辆车相关联,则photo_count将变为1 ....而我想将其增加到10.
有没有办法通过连接单独为每张照片进行增量,而不是MySQL为我过度思考?
我希望上述内容有道理.谢谢.
您可以使用两个查询执行此操作:
UPDATE car
SET photo_count = photo_count + (
SELECT count(*)
FROM photos
WHERE photo.car_id = car.car_id
AND photo_status = 0
AND photo_id IN ($ids)
);
UPDATE photo
SET photo_status = 1
WHERE photo_id IN ($ids);
Run Code Online (Sandbox Code Playgroud)