最近练手的项目中有需要从数据库中随机查询几条记录,进过搜索实验后达到需要的效果,在此记录一下。
很多搜索出来的结果直接使用语句SELECT top 1 * FROM subject order by Rnd(id)
但是实际程序中返回的总是同一行数据。
因此使用以下方法达到需要的效果。
Random random = new Random(Guid.NewGuid().GetHashCode());
int r = random.Next();
dataTable = accessHelper.GetDT("SELECT top 1 * FROM subject order by Rnd(" + (-r) + "*id)");