随机选择记录,与先前选择的记录不同

时间:2018-09-07 07:59:51

标签: php mysql api mysqli pdo

我有一个包含8,000条记录的表,我想从该表中随机选择一些记录(例如10条)。这些记录必须与以前选择的记录不同。

例如,对于此查询,我选择一些问题:

@NonNull

现在我该如何随机选择新记录并且与以前选择的记录不同?

2 个答案:

答案 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()一起使用

  • 避免RAND()极其慢-使用php更好地解决它

如果所选记录的数量太大,请将它们放在临时表中,然后使用

不输入(从临时表中选择ID ...)