2011-06-02 33 views
1

我正在開發自動出價系統,有一個棘手的情況。也就是說,我希望選擇下一臺機器在每次執行代碼時從「table_machine」投標。 這意味着,我正在從活動(狀態= 1)的機器中選擇出價競標。Mysql爲每次執行選擇切換行

execution 1 bidz from mid 1 
execution 2 bidz from mid 2 
....... 
execution 4 bidz from mid 4 
execution 5 bidz from mid 1 

執行1後,如果在現場,然後機器投標者2 bidz應該negleate 2月中及其應申辦MID3

我有兩個表

table_bid_history

history_id user_id  product_id   price  type 
1    1    1    10   live   
2    2    1    10.5  live 
3    1    1    11   machine  
4    2    1    11.5  machine  
5    3    1    12   machine    
6    4    1    12.5  machine  
7    1    1    13   machine 

table_machine

mid  user_id   product_id start  end  num_bidz status    
1   1    1    8   12  5  1 
2   2    1   10   15  15  1 
3   3    1   11   16  10  1 
4   4    1   11   16  10  1 

我該如何做到這一點,我覺得這很棘手但是必須有辦法做到這一點。請給我想法。 請指教!由於

回答

0

如果我理解正確,你可以這樣做: 您machine_table創建一個新的假現場,並把它命名爲lastSelect,並在您使用WHERE子句是這樣的:

SELECT FROM ............. 
    LEFT JOIN table_machine tm ON tm.lastSelect=1 
WHERE id = IF(tm.id=MAX(tm.id),1,tm.id) 

然後更新table_machine當前lastSelect到1