使用rand()从MySQL生成唯一的随机元素

时间:2012-08-14 18:24:55

标签: php mysql

我使用此查询从MySQL获取元素;

select * from bahis where onay='1' or onay='2' order by rand()

但是此查询的元素可以相同。例如,我有3个与此查询匹配的值,A,B,C

它可以产生A A B或A B C或A B B

但我希望像A B C或C B A或B A C那样生成它们。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用类似的东西

select * from 
(select * from bahis where onay='1' or onay='2' group by abc_field) s1
order by rand()

答案 1 :(得分:1)

如上所述,您的查询不会多次输出任何单个行 - 它将以随机顺序返回每一行。如果您在结果中获得重复项,那么您的表必须包含重复项;如果这是正确的,并且您只需要抑制它们,请使用DISTINCT修饰符(例如SELECT DISTINCT * ...)。