按一些列排序,也可以通过MySQL中的rand()排序

Psy*_*che 0 mysql sql sql-order-by

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

例如:

  SELECT `a`, `b`, `c` 
    FROM `table` 
ORDER BY `a` DESC, RAND() 
   LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mar*_*ers 7

你正在做的是有效的 - 它将按降序排序结果,a但随机化关系的顺序.

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

SELECT * FROM
(
    SELECT * FROM table1
    ORDER BY date DESC
    LIMIT 100
) T1
ORDER BY RAND()
Run Code Online (Sandbox Code Playgroud)