Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel - Paginar registros aleatórios


Quando você mergulha na documentação do mysql e procure pela funcionalidade RAND() você verá que pode usar uma "seed".

Ao usar uma semente, você sempre obterá os mesmos resultados aleatórios.

Exemplo:
$products = Product

    ::all()

    ->orderBy(DB::raw('RAND(1234)'))

    ->paginate(4);

Você pode gerar sua própria semente e armazená-la em uma sessão ou algo para lembrá-la.

Atualizar

O construtor de consultas Laravel agora tem uma função que faz exatamente o mesmo:
$products = Product

    ::all()

    ->inRandomOrder('1234')

    ->paginate(4);