小编典典

在MySQL中按某些列和rand()排序

sql

是否可以按某个列以及RAND()对结果集进行排序?

例如:

  SELECT `a`, `b`, `c` 
    FROM `table` 
ORDER BY `a` DESC, RAND() 
   LIMIT 0, 10

谢谢你。


阅读 175

收藏
2021-04-14

共1个答案

小编典典

您正在执行的操作是有效的-它将按降序对结果进行排序,a但会随机化领带的顺序。

但是,要执行所需的操作,您首先需要使用子查询来获取最新的100条记录,然后再使用外部查询对该子查询的结果进行随机排序:

SELECT * FROM
(
    SELECT * FROM table1
    ORDER BY date DESC
    LIMIT 100
) T1
ORDER BY RAND()
2021-04-14