微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – sqlite – 如何在群组中随机订购?

假设我有一个表格,其中一列是:

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));

这是规范的,因此连续运行两次会返回相同的结果.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐