MySQL在同一列上排序两次

MySQL在同一列上排序两次,mysql,sql,Mysql,Sql,我的数据库就像 id|service_id 1 | 8 2 | 3 3 | 4 4 | 1 5 | 3 6 | 2 7 | 1 我想将其排序为具有相同service\u id但随机出现的行。像 id|service_id 1 | 8 4 | 1 7 | 1 2 | 3 5 | 3 6 | 2 3 | 4 表示首先通过service\u id对所有行进行排序,然后再次通过randomservice\u id进行排序。我尝试了按服务id DESC从样本表订单中选择*并尝试了ASC,但它只通过DE

我的数据库就像

id|service_id
1 | 8
2 | 3
3 | 4
4 | 1
5 | 3
6 | 2
7 | 1
我想将其排序为具有相同
service\u id
但随机出现的行。像

id|service_id
1 | 8
4 | 1
7 | 1
2 | 3
5 | 3
6 | 2
3 | 4
表示首先通过
service\u id
对所有行进行排序,然后再次通过random
service\u id
进行排序。我尝试了
按服务id DESC从样本表订单中选择*并尝试了
ASC
,但它只通过
DESC
ASC
进行排序。我也尝试过按兰德(服务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;
基本上,这是对
服务id
的随机替换,并以此作为订单


基本上,这是对
服务id
和订单的随机替换,您所说的
按兰德排序(服务id)
是什么意思显示固定排序?不,这也没有解决问题。@SandeshGupta问您一些问题,但没有回答您的问题,也许你真的应该读他写的东西,而不是仅仅发送一个通用的这不是我的answer@lad2025你不明白我上面说的话吗?我很肯定我理解这个问题。也许你应该从上面读一下我的陈述。
orderbyrand(service\u id)
显示固定排序是什么意思?不,这也没有解决问题。@SandeshGupta问了你一些问题,没有回答你的问题,也许你真的应该读他写的东西,而不是仅仅发送一个通用的这不是我的answer@lad2025你不明白我上面说的话吗?我很肯定我理解这个问题。也许你应该看看我上面的陈述