我尝试获得一个表的10个随机行。类似的问题还有很多,但我有一个附加条件:我希望这份清单每周更新一次,一年更新52次。这10个项目将是"本周随机特色"。
因此,我找到了这个获取随机行的代码片段,每次调用脚本
时,这些行都会发生变化select top 10 percent * from [yourtable] order by newid();
它的问题是,我不能简单地添加一个种子,在这种情况下将是week-of-year
。任何想法如何实现这一点?
您的代码示例是T-SQL (SQL Server)。因此,在SQL Server中这样做非常简单:
select *
from (select t.*,
row_number() over (partition by datepart(wk, thedate) order by newid()) as seqnum
from [yourtable] t
) t
where seqnum <= 10;
MySQL不支持row_number()
,因此在该数据库中方法将不同。