"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como manter a ordem aleatória na paginação MySQL sem duplicatas ou resultados fixos de primeira página?

Como manter a ordem aleatória na paginação MySQL sem duplicatas ou resultados fixos de primeira página?

Publicado em 2024-11-07
Navegar:862

How to Maintain Random Ordering in MySQL Pagination without Duplicates or Fixed First Page Results?

Paginação PHP MySQL com ordem aleatória

Manter a ordem aleatória na paginação MySQL pode representar desafios ao tentar evitar resultados duplicados e garantir conjuntos variados em a primeira página. Aqui estão as soluções para essas preocupações:

1. Evitando resultados duplicados

Para excluir resultados vistos anteriormente em páginas subsequentes, aumente sua consulta SQL com um critério de exclusão baseado em linhas buscadas anteriormente. Utilize um array PHP para armazenar o conteúdo buscado e incorpore condições na consulta para exclusão:

$excludeIDs = []; // Array to store excluded IDs

$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
    $query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";

2. Resultados variados na primeira página

Sim, a paginação pode ser usada com ordem aleatória, introduzindo um valor inicial na função RAND(). Variando a semente (por exemplo, com base na hora ou no endereço IP do usuário), você pode obter diferentes conjuntos de resultados a cada vez.

3. Usando RAND(SEED)

Especifique um valor inicial usando RAND(SEED) para influenciar a ordem aleatória. Ao definir um número inteiro constante como a semente, você pode controlar a sequência de resultados:

$seed = 521; // Example seed value

$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
Declaração de lançamento Este artigo foi reimpresso em: 1729727088 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3