Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以随机顺序重复两次并分页_Php_Laravel - Fatal编程技术网

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();