SET @index := 0;
SELECT  *, @index := @index + 1 `Index` FROM `tA`;

解决方案 »

  1.   

    这个代码可以在mysql的编译环境中实现,但是如果我需要在php中调用呢?其中的变量index当然就不能被sql语句调用了,在php中应该怎么实现呢?????
      

  2.   

    在同一个数据库连接中是可以执行多个查询的!
    <?
    $mysql_conn=mysql_connect("192.168.3.15","root","");
    mysql_select_db("test",$mysql_conn);
    mysql_query("SET @index := 0;",$mysql_conn);
    $rs_sql=mysql_query("SELECT  *, @index := @index + 1 `Index` FROM `tA`;",$mysql_conn);
    echo mysql_error($mysql_conn);
    $num_row=mysql_num_rows($rs_sql);
    $num_col=mysql_num_fields($rs_sql);
    echo "<table border=1 width='80%' bgcolor='#33ccff'>\n<tr>";
    for ($i=0;$i<$num_col;$i++){ //用循环将结果集的字段名显示出来
    echo "<td>".mysql_field_name($rs_sql,$i)."</td>";
    };
    for ($j=0;$j<$num_row;$j++){// 用循环将结果集的数据显示出来。
    echo "</tr>\n<tr>";
    $my_row=mysql_fetch_row($rs_sql); // mysql 中 将结果集的一行读入一个数组变量。
    for ($k=0;$k<$num_col;$k++){
    if (!$my_row[$k]){
    echo "<td>&nbsp;</td>"; // 显示 数据 如果数据为空,则显示一个空格
    }else{
    echo "<td>".$my_row[$k]."</td>";//显示数据。
    }
    }//显示一行中字段数据的 循环结束 。
    }//显示结果集循环结束。
    echo "</tr></table>";?>
      

  3.   

    select (select count(*) from table1 b where b.field=@et and b.id<=a.id) as no
    ,a.field from table1 a 
    where a.field=@et 
    order by a.id