Letter
A
B
B
C
A
A
C
我正在尝试进行一个查询,它将按顺序返回这些字母,但是以随机顺序返回,比如首先是所有的C,然后是所有的A,等等.示例:
Letter
C
C
A
A
A
B
B
所以这些字母会一起出现,但每次我查询它时都会以随机顺序出现.我怎么能做到这一点?
解决方法:
这是一种方法:
select t.*
from t join
(select letter, rand() as rnd
from t
group by letter
) tt
on t.letter = tt.letter
order by tt.rnd;
select t.*
from t
order by rand(ascii(t.letter));
这是规范的,因此连续运行两次会返回相同的结果.