说我有下表
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()
的工作原理。