我有一个查询,它从tableA
中选择userid,messageid,statusid
,如下所示。
$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)
。这可能吗。请帮我
$qry = mssql_query('select userid,messageid,statusid from tableA order by statusid');
while (($row=mssql_fetch_array($qry) !== FALSE) {
if (isset($previous) && $previous['statusid'] !== $row['statusid']) {
// do what you gotta do here
}
$previous = $row;
}
我将order by statusid
添加到您的SQL中,这样您就可以获得一组有序的数据。上面的代码不是试图"向前看"下一行,而是"向后看"上一行。。。这实际上是相同的。您已经获得了$previous
和$row
中两行的数据,因此您应该能够对$previous
执行您想要执行的操作。
我创建了一个数组,并将结果分配给它。然后我使用while循环,检查当前元素是否等于下一个元素。
$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
}
}