我有一个包含8,000条记录的表,我想从该表中随机选择一些记录(例如10条)。这些记录必须与以前选择的记录不同。
例如,对于此查询,我选择一些问题:
@NonNull
现在我该如何随机选择新记录并且与以前选择的记录不同?
答案 0 :(得分:3)
您只需存储先前选择的记录的ID,然后将其添加到下一个查询中,如下所示,以避免两次选择它们:
WHERE id NOT IN = (list of ids)
根据您的示例:
SELECT coloumn1,column2 FROM `myTable` WHERE `status`=1 AND `group`=6 AND id NOT IN (_IDS_) ORDER BY RAND() LIMIT 0
答案 1 :(得分:0)
尝试:
在myTable
= 1和status
= 6的group
中选择coloumn1,column2
AND coloumn1 NOT IN(在php中串联的id,id,id,id,id)
ORDER BY RAND()LIMIT 0,:max
以及在选择中,最好选择一列作为该行的唯一标识符,并将该列与NOT IN()一起使用
如果所选记录的数量太大,请将它们放在临时表中,然后使用
不输入(从临时表中选择ID ...)