Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola amigos tenho uma tabela com nomes repetidos e quero ver os nomes que mais se repetem, e criar tipo um top 10 com os nomes que mais se repetem como no exemplo do codigo abaixo, tentei usar o "ORDER BY nome DESC" so que não ordena, gera aleatorio o resultado com 10 com limite que defini pelo oque está dando o resultado no WHILE, teria como ordenar o resultado dos distintos nomes encontrados em ordem DESC, Obrigado desde já.
// MYSQL busca.
$sqlBuscaDistinto = $mySQL->sql("SELECT DISTINCT nome FROM usuario ORDER BY nome DESC LIMIT 10");
// Efetua a busca.
while($lnBuscaDistinto = mysql_fetch_assoc($sqlBuscaDistinto )){
Não entendi como usar.
exemplo:
--
-- Estrutura da tabela cliente
--
CREATE TABLE IF NOT EXISTS `cliente` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
--
-- Extraindo dados da tabela cliente
--
INSERT INTO cliente (id, nome) VALUES
(1, 'Bruno'),
(2, 'Bruno'),
(3, 'Bruno'),
(4, 'Rocha'),
(5, 'Moraes'),
(6, 'Moraes'),
(7, 'William'),
(8, 'William'); e a consulta:
SELECT COUNT(nome) AS num, nome FROM cliente GROUP BY nome ORDER BY num DESC
Obrigado William deu certinho.
que tal um COUNT + GROUP BY ?
assim, você terá de quebra qntas vezes cada um se repete.
Se tiver dificuldades poste a estrutura sql da tabela.