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


Generating unique random elements from MySQL by using rand()

我使用此查询从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。

我该怎么做?

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

使用类似的东西

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