随机筛选某项相同的记录,确保每条记录都能有机会筛选到。
有表如下:
id有相同的情况。
glbm id
001 1
024 2
026 3
028 3
036 4
我要每次随机筛选出 id 不同的记录,只选id相同的一条记录,但要确保有重复值的记录都有机会能筛选出来,不知道SQL如何写?
[解决办法]
1、建议在表中新增一列flag(integer型),用来记录是否已经选中。(用代码写,处理完后再删除flag列)
2、maxid用来记录最大的id
3、randomize;
ranid:=random(maxid);
select * from a where flag=0 and id=ranid
update a set flag=1 where id=ranid
4、删除flag列