Para você entender melhor este post, você precisa ter uma boa noção de como fazer consultas em uma tabela do MySQL. Sabendo disso, vamos começar a melhorar a nossa consulta, ordenando de acordo com as colunas, sejam ela de forma crescente ou decrescente.
A nossa sintaxe utilizada juntamente com o SELECT é o “ORDER BY“:
SELECT nomedascolunas FROM nomedatabel ORDER BY nomedacoluna ASC/DESC;
Então vamos aos exemplos. Supondo que eu queira fazer uma consulta numa tabela chamada “clientes” e quero pegar somente os nomes e número de telefones deles, mas que seja ordenado pelo nome de forma crescente, ou seja, de A até Z, devemos executar o seguinte SQL:
SELECT nome,telefone FROM `clientes` ORDER BY nome;
Você deve ter percebido que na sintaxe que eu passei, estou informando logo após o nome da coluna para botar ASC ou DESC, mas que não botei neste comando de exemplo. Realmente não botei pelo simples fato de, por padrão, o MySQL já realiza a consulta de forma crescente, mas que não atrapalha em nada você acrescentar o ASC no final do comando, ficando assim:
SELECT nome,telefone FROM `clientes` ORDER BY nome ASC;
O resultado seria esse:
Ana | 1111-1111 André | 3333-3333 Antônio | 2222-2222 Diego | 4444-4444 Diogo | 5555-5555 João | 8888-8888 José | 7777-7777 Maria | 6666-6666 ...
Caso a gente queira fazer o inverso na ordenação dos dados, ou seja, fazer a consulta de forma decrescente (de Z até A), devemos utilizar o DESC:
SELECT nome,telefone FROM `clientes` ORDER BY nome DESC;
O resultado seria esse:
Maria José João Diogo Diego Antônio André Ana ...
Agora que já aprendemos como ordenar uma coluna, vamos ver como faremos para ordenar duas delas.
Suponha que temos a seguinte tabela “FUNCIONÁRIOS”:
- id_funcionario
- id_setor
- nome
Queremos fazer uma consulta para pegar os nomes ordenados de forma crescente, mas separados por setor também de forma crescente pelo id_setor:
SELECT id_setor,nome FROM `funcionarios` ORDER BY `id_setor` ASC,`nome` ASC;
O resultado seria isso:
ID_SETOR | NOME 1 | Antônio 1 | Diego 1 | Marcelo 2 | Maria 2 | Maurício 2 | Ricardo 2 | Tiago 3 | João 3 | José 3 | Tânia 4 | Ana 4 | Antônio 5 | Josefa 5 | Victor
Caso você queira, pode alterar a ordem de cada coluna, elas não precisam ser necessariamente a mesma. Veja outros exemplos:
SELECT id_setor,nome FROM `funcionarios` ORDER BY `id_setor` ASC,`nome` DESC; SELECT id_setor,nome FROM `funcionarios` ORDER BY `id_setor` DESC,`nome` DESC; SELECT id_setor,nome FROM `funcionarios` ORDER BY `id_setor` DESC,`nome` ASC;
Espero que tenha sido útil e bem claro nas explicações. Um abraço. Não deixe de comentar e dar seu voto! 🙂
id_setor,nome