Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcusc

IF/COUNT no MySQL

Recommended Posts

Estou fazendo uma consulta complexa no MySQL, porém gostaria de saber se tem como eu usar um IF dentro do COUNT, ou um CONT dentro do IF, se possível, gostaria de saber a sintaxe correta, já que o COUNT e o IF separados não me interessam, abaixo segue como eu gostaria que fosse a consulta e como ela funciona atualmente://como ela funcionaSELECT dominio.nome,COUNT(dominio.id_dom) AS num_reg, FROMdominioINNER JOINdominio_cadastro ON (dominio.id_dom = dominio_cadastro.id_dom) GROUP BYdominio.nomeORDER BYnum_reg DESC// como eu gostaria que fosseSELECT dominio.nome,COUNT(dominio.id_dom) AS num_reg, COUNT(IF(dominio_cadastro.aceita = '1')) AS num_aceita FROMdominioINNER JOINdominio_cadastro ON (dominio.id_dom = dominio_cadastro.id_dom) GROUP BYdominio.nomeORDER BYnum_reg DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quase acertou, faltou apenas uns argumentos pra completar. Eu utilizo muito o IF junto com COUNT, para resultados mais afinados e sem necessidade de programaçao posterior para filtragem dos dados. e por ser comandos nativos do MYSQL, é muito rapido o processamento.

 

Vale a pena estudar esse e centenas de outros comandos MYSQL que ajudam em muito nossa vida. Depois que pega a manha você pensa: porque não fazia dessa forma antes, não teria tido L.E.R. hehehe

 

SELECT dominio.nome,
COUNT(dominio.id_dom) AS num_reg, 
COUNT(IF(dominio_cadastro.aceita = '1', 1, NULL)) AS num_aceita 
FROM dominio
INNER JOIN
dominio_cadastro ON (dominio.id_dom = dominio_cadastro.id_dom) 
GROUP BY
dominio.nome
ORDER BY
num_reg DESC 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Nilton Bicalho,

 

Obrigado por compartilhar seu conhecimento conosco.

 

Continue contribuindo respondendo os tópicos mais recentes.

 

Abraços

 

Mário Monteiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.