MySQL在同一列上排序两次

科技小子

我的数据库就像

id|service_id
1 | 8
2 | 3
3 | 4
4 | 1
5 | 3
6 | 2
7 | 1

我想将其排序为类似的行,service_id但随机出现。喜欢

id|service_id
1 | 8
4 | 1
7 | 1
2 | 3
5 | 3
6 | 2
3 | 4

意味着首先所有行通过排序,service_id然后再通过随机排序service_id我曾尝试SELECT * from sample_table order by service_id DESC和尝试ASC过,但它只能通过做排序DESCASC我也尝试order by rand(service_id)过,但它也显示了一些固定排序。

于尔根
select t.*
from your_table t
join 
(
  select service_id, rand() as r
  from your_table 
  group by service_id
) tmp on t.service_id = tmp.service_id
order by tmp.r;

SQLFiddle演示

基本上,这可以service_id通过

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章