随机选择不同于先前选择的记录的记录

zrfyljdw  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(339)

我有一个有8000条记录的表,我想从这个表中随机选择一些记录(例如10条)。这些记录必须与以前选择的记录不同。
例如,通过这个查询,我选择了一些问题:

SELECT coloumn1,column2 FROM `myTable` WHERE `status`=1 AND `group`=6 ORDER BY RAND() LIMIT 0, :max

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

tquggr8v

tquggr8v1#

尝试:从中选择Column1,column2 myTable 哪里 status =1和 group =6且Column1不在(id,id,id,id,id,id在php中串联)顺序中,按rand()限制0,:max
在select中,最好选择一个列作为行的唯一标识符,并将该列与notin()一起使用
避免使用rand(),因为它非常慢-最好使用php来解决它
如果所选记录的数目太大,请将它们放入临时表中,然后使用
不在(从临时表中选择id…)

qyzbxkaa

qyzbxkaa2#

您只需存储以前选择的记录的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

相关问题