现在手头有个表  id name    grade goldUser 
  1  jack    300   10 
  2  mach    200   10 
  3  lich    100   10 
  4  rock    1     0 
  5  mick    1     10 
  6  kight   0     10 
  7  babaya  0     0 
  8  kano    0     10 执行
SELECT *
FROM `test`
order by grade desc ,golduser desc就变成
  id   name    grade goldUser 
  1    jack    300   10 
  2    mach    200   10 
  3    lich    100   10 
  5    mick    1     10 
  4    rock    1     0 
  6    kight   0     10 
  8    kano    0     10 
  7    babaya  0     0现在我想让
grade  = 1
的这两个数
即name = mick 和 name = rock
这两条记录在结果集里的次序随机排序,有没有办法?
即,mick有可能排在rock前面,rock也有可能排在mick,每次查询的情况都不一样谢谢,百分求助
 

解决方案 »

  1.   

    (SELECT * FROM test order by grade desc,goldUser limit 3)
    union all
    (select * from test where grade = 1 order by rand())
    union all
    (select * from test order by grade desc,goldUser limit 5,3);
      

  2.   

    昏,仔细看下,其实还是不行的(select * from test where grade = 1 order by rand()) 
    这样是能实现随机了但
    (SELECT * FROM test order by grade desc,goldUser limit 3) 
    union all 
    (select * from test where grade = 1 order by rand()) 
    union all 
    (select * from test order by grade desc,goldUser limit 5,3);
    居然就不行
      

  3.   

    本帖最后由 yueliangdao0608 于 2007-10-12 20:25:10 编辑