如何比较MySQL中的两行

时间:2016-05-28 08:10:59

标签: mysql triggers

我有一辆卡车可以交货,司机每次都会记录街道名称。我想比较出发地和目的地,以确保他们匹配的司机:

Departures   | Destination
-------------+--------------
Duck Street  | Alley street.
Alley street | Simpson street.

我只想确保第1行的旧目标和第2行的新离开始终匹配。我在MySQL中尝试过更新触发器,但我不理解语法,请帮助

1 个答案:

答案 0 :(得分:1)

您的桌子应该有一个递增的id(或时间指示),以便您可以识别最后插入的街道。

如果您的表格如下:

create table itinerary (
    id               int         auto_increment,
    departure_street varchar(100),
    arrival_street   varchar(100),
    primary key (id)
);

...然后你可以添加这个触发器:

create trigger tr_ins_itinerary before insert on itinerary for each row
    set new.departure_street = (
      select   arrival_street
      from     itinerary
      order by id desc
      limit    1);

请参阅SQL fiddle

您可能有不同的驱动程序,并将driver_id存储在该表中。在这种情况下,您需要在触发器中使用where子句:

...where driver_id = new.driver_id...