php - 在mysql中随机化结果

标签 php mysql sql

我正在制作一个抽奖程序,我希望这个人的名字是随机的,但不重复任何记录。我在下面的两个查询之间进行选择。第一个确保没有记录从返回的结果中重复,但是牺牲了具有更高 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()");

最佳答案

如何添加 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()");

关于php - 在mysql中随机化结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870479/

相关文章:

php - 使用自定义 php mysql 查询从 wp 元值获取值

mysql计票优化

php - 向数据库中提交的变量添加撇号

php - 如何在 Codeigniter 中编辑 MySql 数据库记录?

sql - 在非不同索引上使用递归 cte 计算不同行

sql - SSIS ODBC SQL 参数

MySQL查询以查找设备最后一个条目的位置

php - 如何以隐藏在html表单中的输入类型传递php数组

javascript - Ajax jQuery成功如何获取PHP传递的结果值

php - Laravel 5 - 用户个人资料图片