select * from (select * from tbname order by fieldname limit 100) as tb order by rand() limit 5;

解决方案 »

  1.   

    你的mysql版本要在4.1以上,才支持子查询。
      

  2.   

    我试了一下二楼的那句,但是出现了这样的错误:
    ERROR 1248 (42000): Every derived table must have its own alias
    后来才来我又用如下语句才行:
    mysql>create temporary table  temp (select * from tbname order by fieldname limit 100);
    mysql>select * from temp order by rand() limit 5;说明:第一句是创建了一个临时表,并且复制了tbname按最新产品前100条记录。
    我用的是4.1
      

  3.   

    在我这里是可以执行的,括号后面那个 as tb 没有忘记输入吧?就是给它一个别名。
      

  4.   

    那个我没有输入,加上就行!因为我想起不起别名是没有什么关系的,别名只不过是为了方便我们使用和记忆,想不到这样也有关系,学到了不少。嘿嘿,谢了rardge(Rardge)!