Mysql为每次执行选择切换行

时间:2011-06-02 17:44:38

标签: php mysql

我正在开发自动出价系统,有一个棘手的场景。也就是说,我想在每次执行代码时选择下一台机器从“table_machine”开始出价。 这意味着,我正在从有效(状态= 1)机器中选择出价以进行出价。

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 on live,那么机器出价应该在中间2时出现,并且应该在中期3出价

我有两张桌子

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 

我怎么能这样做,我觉得这很棘手但是必须有办法做到这一点。请给我一个想法。 请建议我 !谢谢

1 个答案:

答案 0 :(得分: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