Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos!
Na tabela são inseridos de 100 a 300 registros por dia, minha dificuldade é listar 10% destes registros.
No limit consigo limitar um valor fixo, mas não consigo com limit = 10%
Algo do tipo:
Select * from dados where data = 28/07/2023 limit 10%
Outra tática e até acho mais eficiente "dependendo do cenário", seria buscar todos registros de forma que só fazemos uma query assim estressando menos o banco de dados, mas em todo caso depende de quantos registros vamos trabalhar.
Selecionamos todos registros da tabela.
Teremos então um array contamos quantos índices possui
Com a quantidade de índices existentes no array fazemos o calculo de percentual necessário.
// criando um array como exemplo
$arr = []; // representação do resultado da query dos registros no banco de dados
$i = 0;
$quantos_registros = 4000; // altere aqui a quantidade de registros que o array deve possuir
while ($i < $quantos_registros) {
$i++;
$arr[$i] = $i;
}
// calculando o percentual
$contagem = count($arr);
$porcentagem = 10; // 10% dos total de indices contados de "$contagem"
$resultado = $contagem * ($porcentagem / 100);
var_dump($resultado); // << Quantidade de 10% dos índices do array "$arr"
Agora o que fazer depende de quais índices vão ser exibidos final, meio ou início.
Podemos remover do array que armazenou os índices o restante que não é o $resultado ou vise-versa.
Podemos ignorar quando esse array for representado.
E por aí vai.....
não há uma cláusula específica para exibir uma porcentagem específica dos resultados de uma consulta. No entanto, você pode obter o efeito desejado usando duas etapas: primeiro, determine o número total de linhas que correspondem aos seus critérios de pesquisa e, em seguida, selecione uma porcentagem desse número total