mysql order by desc num 以后,我想查出id=1的记录在第几行怎么办?
有人给我一个解决方式:
set @rown=0;
select * from( select (@rown:=@rown+1) as rownum, num,id from tablename order by desc  num) as A  where id=1num 与id 是表里的字段 tablename为表名这是那个人给的方法,但是在mysql5.5里查出来的行号为null。查不出。请问怎么解决?或者有什么其他的方法。(查出来的结果放到另一个表里的这个方法就不用说了哈)

解决方案 »

  1.   

    SELECT *,Place=(SELECT COUNT(DISTINCT num) FROM tb WHERE num=a.num)
    FROM tb a
    ORDER BY num 
      

  2.   


    select 字段 from a,b where a.字段*=b.字段
      

  3.   

    select count(*)
    from tablename
    where num>=(select num from tablename where id=1);
      

  4.   

    感觉mysql就是赶不上oracle
    这个语句好使在我机上:SELECT @rownum:=@rownum+1 rownum, sjfat_stu_cource.*
    FROM (SELECT @rownum:=0) r, sjfat_stu_cource;
    sjfat_stu_cource为表名。
      

  5.   

    谢谢!那如果我要是想加个order by score desc 加在什么地方啊?就是先按照分数排序在查找行数
    帮帮小弟
      

  6.   

    SELECT @rownum:=@rownum+1 rownum, tables.*FROM (SELECT @rownum:=0) r, tables  order by score desc;
    我用的这种方法
      

  7.   

    MySQL中的ROWNUM的实现 
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/04/20/4095531.aspx
      

  8.   

    你的这种方法我试了,好用。
    SELECT @rownum:=@rownum+1 rownum, a.*FROM (SELECT @rownum:=0) r, a  order by id desc;
    但我想按成绩排名以后查id=1的行号。也就是where id=1,不知道写在什么地方
      

  9.   

    如果需要 where id=1 则不能使用上面这个语句了。
    用下面这个语句。
      

  10.   

    select * from(
    SELECT @rownum:=@rownum+1 rownum, sjfat_stu_cource.*
    FROM (SELECT @rownum:=0) r, sjfat_stu_cource) as t
    where sid=2
    order by score desc;
      

  11.   

    在原表上加一列rownum,组成一临时表:
    SELECT @rownum:=@rownum+1 rownum, sjfat_stu_cource.* 
    FROM (SELECT @rownum:=0) r, sjfat_stu_cource) as t as t 不能少,要不编译不能通过加条件:
    where sid=2 
    order by score desc;
    query本没有路,只要你觉得正确,就ok.
    这个网站:http://sql.1keydata.com/cn/sql-where.php