Php 以随机顺序重复两次并分页
我有密码:Php 以随机顺序重复两次并分页,php,laravel,Php,Laravel,我有密码: $products = Product::whereIn('id_principal_category', $array)->inRandomOrder()->paginate(6); 它有时会给我显示一个重复的记录 我已经读到,我必须使用where notin,问题是它可以工作,如果它只是一次。。。但是如果它有一个分页器,我该怎么做呢?因为我不知道那些重复的记录是什么,我也不能用它们。。所以我的问题是,如何才能在ANDOMORDER中不显示paginator的重复记录
$products = Product::whereIn('id_principal_category', $array)->inRandomOrder()->paginate(6);
它有时会给我显示一个重复的记录
我已经读到,我必须使用where notin,问题是它可以工作,如果它只是一次。。。但是如果它有一个分页器,我该怎么做呢?因为我不知道那些重复的记录是什么,我也不能用它们。。所以我的问题是,如何才能在ANDOMORDER中不显示paginator的重复记录
谢谢看看unique()
方法是否有用
$products = Product::whereIn('id_principal_category', $array)->unique()->inRandomOrder()->paginate(6);
不能使用随机排序和分页,mysql无法跟踪每个访问者的行。 我引用了他的话 解决方案1 从已编制索引以进行排序的多个现有列中进行拾取。这可以包括创建、修改的时间戳 解决方案2 您可以有一个额外的列来存储用于排序的随机数。显然,它应该被编入索引。定期运行以下查询
UPDATE table SET rand_col = RAND();