Ir para o conteúdo
nmb

MYSQL Count Query

Mensagens Recomendadas

nmb    0
nmb

boas pessoal

Estou a usar o php+mysql e tenho o seguinte problema numa query em mysql:

ao realizar a seguinte query generica

SELECT count(id) FROM `tablex` ORDER BY `blabla` DESC LIMIT 50

esta query retorna-me sempre valores superiores a 50.

a questão é: é possível limitar a contagem fixando valores máximos em "LIMIT 50"?

neste caso mesmo que os dados existentes fossem superiores a 50 ele teria de me retornar 50.

obrigado!

hasta!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nmb    0
nmb

boas!

imagina que estas a fazer um registo log onde são encontrados 100 dados. mas como tu pretendes mostrar apenas os ultimos 50.

este codigo faz parte da query que te conta a pesquisa actual.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nmb    0
nmb

isto pode-se resolver com simples instruções if else no php.. mas a minha intenção é perceber pk ñ funciona esta query do mysql

se estou a limitar a pesquisa a 50, pk ele me retorna mais?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

Não sei se percebi bem, mas o que tu queres então é obter no máximo 50 registos e saber quantos registos é que obtiveste?

Se sim então fazes apenas

select campo From tabela limit 50

E no php é que verificas quantos rows obtiveste.

Se quiseres ter o número junto na query é possivel, mas ficas com redundancia de dados tipo:

Select X, campo
From (
  Select count(*) as X
  From (
    Select campo
    from tabela
    Limit 50
  )
), tabela
Limit 50

Não sei se funciona mas ficas com a ideia, é escusado de dizer que é terrivelmente ineficiente.

isto pode-se resolver com simples instruções if else no php.. mas a minha intenção é perceber pk ñ funciona esta query do mysql

se estou a limitar a pesquisa a 50, pk ele me retorna mais?

Porque o Limit só é aplicado depois do agrupamento. Ou seja, estás a fazer limit 50 a uma query que só retorna uma linha.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

E não podes usar o TOP ?

Select TOP 50 * from tabela

Não há TOP em mysql, há o limit que é a mesma coisa. E o problema ainda continuava já que não obtia o número de linhas que tinha.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MX+    0
MX+

Embora tenham dado algumas soluções o problema está logo no ínicio, porque o LIMIT que fazes limita-te realmente o número de resultados que o MySQL te retornna, mas o count(id) que tu usas vai-te contar todas as linhas da tabela, e vai-te dar sempre o mesmo resultado independentemente do valor LIMIT que apliques. Faz antes assim..


$query = mysql_query("SELECT id FROM `tablex` ORDER BY `blabla` DESC LIMIT 50");

$count = mysql_num_rows($query);

É a variável $count que tu queres  :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gurzi    2
Gurzi

Para colocarem dúvidas existe uma secção interna em cada àrea denominada Dúvidas e Ajudas.

Por favor utilizem essa secção de forma a poupar trabalho aos Moderadores para moverem tópicos.

Obrigado

:P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade