假如2个人回复一个帖子
A=第一个人 B等于第二个人
A回复1 3 5 7 
B回复2 4 6 8
现在判断的是
我是B 现在到了9楼 我要判断8楼是不是我
是我就不执行 设置时钟等待一会再执行
但现在我看了网页代码中
没有可以判断的东西 自己没思路
楼层肯定不能判断
名字判断的话 8楼是我 呢 4楼 6楼 也是我 不知道怎么个思路
然后还能判断什么?

解决方案 »

  1.   

    这些回复记录会写到数据库里面吗,如果可以记录到数据库的话,那么:
    假设——
    /* 这里为表结构:
    回复人 楼层编号 帖子id .......
    A 1 1
    A 3 1
    A 5 1
    A 7 1
    B 2 1
    B 4 1
    B 6 1
    B 8 1
    */declare @tb table
    (
    回复人 varchar(5),
    楼层编号 int,
    帖子id int
    );
    INSERT INTO @tb SELECT 'A', 1, 1 UNION ALL
    SELECT 'A', 3, 1 UNION ALL
    SELECT 'A', 5, 1 UNION ALL
    SELECT 'A', 7, 1 UNION ALL
    SELECT 'B', 2, 1 UNION ALL
    SELECT 'B', 4, 1 UNION ALL
    SELECT 'B', 6, 1 UNION ALL
    SELECT 'B', 8, 1 DECLARE @currentReply varchar(10);
    SET @currentReply = 'B'
    if exists( select 1
    from @tb
    where(
        case 
    when (select MAX(楼层编号) from @tb t where  回复人 = @currentReply) = (select MAX(楼层编号) from @tb) then 1 
    else 0 end) = 1  
      )
    --执行延迟插入
    print '1'   --测试输出
    ELSE
    --插入最大MAX(楼层编号)+1和当前回复人
    print '0'   --测试输出试试看可否满足你的要求?
      

  2.   

    declare @tb table
    (
     回复人 varchar(5),
     楼层编号 int,
     帖子id int
    );
    INSERT INTO @tb SELECT 'A', 1, 1 UNION ALL
     SELECT 'A', 3, 1 UNION ALL
     SELECT 'A', 5, 1 UNION ALL
     SELECT 'A', 7, 1 UNION ALL
     SELECT 'B', 2, 1 UNION ALL
     SELECT 'B', 4, 1 UNION ALL
     SELECT 'B', 6, 1 UNION ALL
     SELECT 'B', 8, 1  DECLARE @currentReply varchar(10);
    SET @currentReply = 'B'
    if exists( select 1
     from @tb
     where(
     case  
    when (select MAX(楼层编号) from @tb t where 回复人 = @currentReply) = (select MAX(楼层编号) from @tb) then 1  
    else 0 end) = 1   

    --执行延迟插入
     print '1' --测试输出
    ELSE
     --插入最大MAX(楼层编号)+1和当前回复人
     print '0' --测试输出可直接在查询分析器里面运行,模拟回复人A或者B进行下一次回复