我正在制作一个抽奖活动,我希望这个人的名字是随机的,但不要重复任何记录。我在下面两个查询之间进行选择。第一个是确保从返回的结果中不重复记录,但牺牲了具有更高id的人,因为他们不会被选中。第二个是随机的,但可能会选择重复记录。有没有其他方法可以在mysql或php中实现随机记录而不重复任何返回的结果?
$select_random = $db->get_results("SELECT person FROM tbl_people WHERE state = 1 LIMIT $offset, 30");
$select_random = $db->get_results("SELECT participant FROM tbl_participants WHERE state = 1 ORDER BY RAND()");
答案 0 :(得分:5)
如何添加DISTINCT
$select_random = $db->get_results("SELECT DISTINCT person FROM tbl_people WHERE state = 1 LIMIT $offset, 30");
或
$select_random = $db->get_results("SELECT DISTINCT participant FROM tbl_participants WHERE state = 1 ORDER BY RAND()");