smart:如何在mysql中获取已更改字段的行

时间:2012-10-18 20:45:49

标签: mysql

假设我有以下行:

'employee' , 'is_here' , 'ts'
      1    ,    1      ,   22
      2    ,    1      ,   33
      1    ,    0      ,   44
      1    ,    0      ,   55
      2    ,    0      ,   66
      1    ,    0      ,   77
      2    ,    0      ,   88
      1    ,    1      ,   99

有什么方法可以在is_here更改时显示某些员工的结果?

例如,我想获取员工#1 is_here更改的行,因此输出将为:

1,1,22 1,0,44 1,1,99

我猜这将是具有挑战性的:)

1 个答案:

答案 0 :(得分:1)

只要您当时只为一名员工运行查询

set @state = -1;

select employee,
       @state := is_here as changed_to,
       ts
  from working
 where employee = 1 
   and (@state = -1 or @state != is_here);

http://sqlfiddle.com/#!2/a71d8/11