从表中随机选择

时间:2010-12-03 13:23:50

标签: php mysql random

  

可能重复:
  How to request a random row in SQL?

           I have table:
           name,age,school
           jane,15,zu
           peter,16,zu
           john,15,stu
           Tomas,15,kul
           viera,17,stu
           tibor15,zu

我希望从每张学校中选择1人(随机)

3 个答案:

答案 0 :(得分:0)

select * from table  group by school order by rand() 

答案 1 :(得分:0)

由于它是随机对整个表进行ORDER操作,然后在一个潜在的巨大的无索引临时表上进行GROUPing,这非常有效。但是这很有用。

SELECT * 
FROM (
     SELECT * 
     FROM  my_table 
     ORDER BY RAND()
     )a
GROUP BY school

将其分解可能更为明智。

  1. 检索列表的一个查询 学校。
  2. 对于每所学校,只需一个查询即可获得该学校的随机学生。
  3. 有关如何有效获取单个随机值的一些灵巧技巧,请参阅this post

答案 2 :(得分:-2)

如果您使用的是php(如标记所示),请运行SELECT * FROM table;,然后根据查询中的结果数生成一个随机数。例如:

i = floor(random()*query.length);

然后寻找显示seek(i)和中提琴的记录,你有随机录入=)

你必须使用你自己的知识/文档来获得确切的语法,我有一段时间没有触及过PHP,但逻辑是合理的。

加里