说我有下表

Table1

item, value
----------------------
1        1
2        2
3        1
4        1
5        1


假设按值DESC然后按rand()排序将导致2,4,3,5,1作为顺序

如果将项目3的值更改为3

Table1

item, value
----------------------
1        1
2        2
3        3
4        1
5        1


然后,排序顺序将更改为3,2,5,1,4。

所以我的问题是:是否仍然存在排序顺序,并且只有已更改的对象才能在列表中向上移动?因此,我对第一个列表的预期结果将是2,4,3,5,1,第二个列表将是3,2,4,5,1。因此,3仅在列表中向上移动,而不会更改其他随机排序元素的位置。我希望这是有道理的。

最佳答案

是的,您可以尝试使用rand(number),其中数字是种子数字(您喜欢的任何数字)
所以像

SELECT item FROM table1 ORDER BY value desc, rand(1)


sqlFiddle在小提琴中,table1和table2除了项目3的值完全相同外,请参见带有种子的rand()的工作原理。

10-04 15:40
查看更多