从数据库中获取下一个表行的特定列元素

时间:2015-12-29 13:09:03

标签: php sql-server while-loop comparison

我有一个查询从userid,messageid,statusid中选择tableA,如下所示。

$qry = mssql_query('select userid,messageid,statusid from tableA');
if(mssql_num_rows($qry))
{
   $data = mssql_fetch_array($qry)
   {
     //if(current_status_id column value != next_status_id column value)
     $status = $data['statusid'];
   }
}

我需要将当前statusid列的值与紧邻的下一行statusid列进行比较,例如if(current_status_id column value != next_status_id column value)。这是否可行。请帮助我

2 个答案:

答案 0 :(得分:1)

order by statusid

我在您的SQL中添加了$previous,以便您获得一组数据。而不是试图“向前看”到下一行,上面的代码“回头”到前一行......这实际上是相同的。您已经在$row$previous中获得了这两行的数据,因此您应该可以使用*a++; 执行您想要的操作。

答案 1 :(得分:0)

我创建了一个数组并将结果分配给它。然后我使用了while循环并检查当前元素是否不等于next元素。

$i=1;
while (($row = mssql_fetch_array($qry, MYSQL_ASSOC)) !== false)
{
     $data_array[] = $row; // add the row in to the results (data) array
} 
mssql_data_seek( $qry, 0 );
while($msgDetailChilds = mssql_fetch_array($qry)){ 
   if($data_array[$i]['groupid']!=$data_array[$i-1]['groupid'])
   {
      //do stuff
   }

}