假设我有以下 2 个表:
行程:
driverId (PK), dateTravelled, totalTravelDistance
farthest_trip(相同的结构)
driverId (PK), dateTravelled, totalTravelDistance
仅存储最近的旅程:
REPLACE INTO JOURNEYS ('$driverId', '$totalTripDistance');
我还想存储每个 driverId 的最远行程,但不幸的是,您不能在INSERT... ON DUPLICATE KEY UPDATE
语句中设置条件,否则我会有一个触发器,例如:
INSERT INTO farthest_trip(driverId, dateTravelled, totalTravelDistance) ON DUPLICATE KEY UPDATE dateTravelled = new.dateTravelled, totalTravelDistance = new.totalTravelDistance WHERE totalTravelDistance < new.totalTravelDistance;
所以我要做的是在插入第一个表之后,在 PHP 中检查当前距离是否比以前记录的更远,如果是,则更新 farthest_journey。感觉应该有更好的方法,但我无法弄清楚,那么有没有更有效的方法呢?