Ir para conteúdo

POWERED BY:

Arquivado

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

Guilherme Oderdenge

[Resolvido] Resgatar valores mais usados do banco

Recommended Posts

Olá!

 

Senhores, gostaria de resgatar os valores mais usados no banco e exibi-los via PHP. Por exemplo, se existe 3 valores com o nome "Guilherme" no banco, exibe Guilherme primeiro; se existe 2 com o nome "Pedro", vai exibir esse por segundo; e por último, se só tiver uma vez "Thiago", ele resgata este por terceiro.

 

É uma espécie de "ranking", ou, "os 10 mais".

 

Mas não estou trabalhando com valores, mas sim com palavras. Quantidade de registros nessa tabela.

 

Pensei em algo como RowCount, mas não sei como executar.

 

Desde já, grato.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT nome, COUNT(nome) AS qnt FROM table GROUP BY nome ORDER BY qnt DESC;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá mais uma vez, WBruno.

 

Ele está checando a quantidade de nomes, mas está exibindo todos como 1, sendo que vários e vários tem mais de um valor.

 

Desde já, grato.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exporta a tabela com os registros e cole aqui.

 

se houver alguma diferença na digitação, ele não vai conseguir agrupar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kara, a resposta do William tá certa .. olha aí:

mysql> describe usuarios;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| uid       | int(11)     | NO   | PRI | NULL    | auto_increment |
| nome      | varchar(13) | NO   |     | NULL    |                |
| sobrenome | varchar(26) | NO   |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
3 rows in set (0.03 sec)

mysql> select * from usuarios;
+-----+---------+---------------------+
| uid | nome    | sobrenome           |
+-----+---------+---------------------+
|   1 | Andrey  | Knupp               |
|   2 | Andrey  | Souza Peres         |
|   3 | Andrey  | Marques de Oliveira |
|   4 | Rogerio | Lima dos Santos     |
|   5 | Rogerio | de Souza Pinto      |
|   6 | Roger   | Nascimento          |
|   7 | Rogerio | Ferreira            |
+-----+---------+---------------------+
7 rows in set (0.00 sec)

mysql> select usuarios.*, count(*) as totalUsuarios from usuarios group by usuarios.nome order by totalUsuarios desc;
+-----+---------+-----------------+---------------+
| uid | nome    | sobrenome       | totalUsuarios |
+-----+---------+-----------------+---------------+
|   1 | Andrey  | Knupp           |             3 |
|   4 | Rogerio | Lima dos Santos |             3 |
|   6 | Roger   | Nascimento      |             1 |
+-----+---------+-----------------+---------------+
3 rows in set (0.01 sec)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, cavalheiros.

 

O problema, na verdade, é que ele estava juntando valores iguais no mesmo registro. Então, tive que fazer umas adaptações no código de vocês para chegar no resultado que eu queria. Deu certo de qualquer forma.

 

Obrigado pela ajuda.

 

Abraços! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste as adaptações que você fez, e mostre 'o que você queria'

 

pode ajudar outros usuarios. Afinal, é para isso que o forum existe.

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.