2012-10-18 41 views
0

假設我有以下行改變字段行:智能:如何獲得在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

只要您運行只有一個員工在查詢的時候

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

+0

我想知道是否有任何其他的方式來實現'set @state = -1;'在PHP中? –

+0

有一個技巧,你可以加入一個虛擬表格來爲@state設置一個初始值。我不記得它:( –