ORDER BY no MySQL: consulta DESC e ASC com EXEMPLO

Resultados de classificação

Utilizando o comando SELECT, os resultados foram retornados na mesma ordem em que os registros foram adicionados ao banco de dados. Esta é a ordem de classificação padrão. Nesta seção, veremos como podemos classificar os resultados de nossa consulta. Classificar é simplesmente reorganizar os resultados da consulta de uma maneira específica. A classificação pode ser realizada em uma única coluna ou em mais de uma coluna. Isso pode ser feito em números, strings e também em tipos de dados de data.

O que é ORDER BY no MySQL?

MySQL ORDENAR POR é usado em conjunto com a consulta SELECT para classificar os dados de maneira ordenada. A cláusula MySQL ORDER BY é usada para classificar os conjuntos de resultados da consulta em ordem crescente ou decrescente.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

AQUI

  • "Instrução SELECT... " é a consulta de seleção regular
  • "| " representa alternativas
  • “[ONDE condição | GROUP BY `field_name(s)` TENDO condição” é a condição opcional usada para filtrar os conjuntos de resultados da consulta.
  • "ORDENAR POR" executa a classificação do conjunto de resultados da consulta
  • “[ASC | DESC]” é a palavra-chave usada para classificar conjuntos de resultados em ordem crescente ou decrescente. Observação ASC é usado como padrão.
  • O que são palavras-chave DESC e ASC?

    Palavras-chave DESC e ASCASC é a forma abreviada de ascendente Palavras-chave DESC e ASCMySQL DESC é a forma abreviada de descendente
    É usado para classificar os resultados da consulta em um estilo de cima para baixo. É usado para classificar os resultados da consulta em um estilo de baixo para cima
    Ao trabalhar com tipos de dados de data, a data mais antiga é mostrada no topo da lista. . Ao trabalhar com tipos de data, a data mais recente é mostrada no topo da lista.
    Ao trabalhar com tipos de dados numéricos, os valores mais baixos são mostrados no topo da lista. Ao trabalhar com tipos de dados numéricos, os valores mais altos são mostrados no topo do conjunto de resultados da consulta.
    Ao trabalhar com tipos de dados de string, o conjunto de resultados da consulta é classificado daqueles que começam com a letra A e vão até a letra Z. Ao trabalhar com tipos de dados de string, o conjunto de resultados da consulta é classificado daqueles que começam com a letra Z e vão até a letra A.

    Ambas as palavras-chave SQL DESC e ASC são usadas juntas em conjunto com a instrução SELECT e a cláusula MySQL ORDER BY.


    Sintaxe DESC e ASC

    A palavra-chave SQL DESC sort tem o seguintewing sintaxe básica.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    AQUI

    • SELECIONE {nome(s) do(s) campo(s) | *} FROM nome(s) da(s) tabela(s) é a instrução que contém os campos e tabelas das quais obter o conjunto de resultados.
    • [ONDE condição] é opcional, mas pode ser usado para filtrar os dados de acordo com a condição fornecida.
    • ORDENAR POR fieldname(s) é obrigatório e é o campo no qual a classificação deve ser realizada. A palavra-chave MySQL DESC especifica que a classificação deve ser em ordem decrescente.
    • [LIMITE] é opcional, mas pode ser usado para limitar o número de resultados retornados do conjunto de resultados da consulta.

    Exemplos:

    Vejamos agora um exemplo prático –

    SELECT * FROM members;

    A execução do script acima no ambiente de trabalho MySQL no myflixdb nos dá o seguintewing resultados mostrados abaixo.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


Suponhamos que o departamento de marketing queira que os membrostails organizados em ordem decrescente de data de nascimento. Isso os ajudará a enviar cumprimentos de aniversário em tempo hábil. Podemos obter a referida lista executando uma consulta como abaixo –

SELECT * FROM members ORDER BY date_of_birth DESC;

A execução do script acima no ambiente de trabalho MySQL no myflixdb nos dá o seguintewing resultados mostrados abaixo.

Exemplo DESC e ASC

A mesma consulta em ordem crescente

SELECT * FROM membros ORDER BY data_de_nascimento ASC

Exemplo DESC e ASC

Nota: valores NULL significam nenhum valor (não zero ou string vazia). Observe a forma como eles foram classificados.

Mais exemplos

Vamos considerar o seguintewing SQL classifica por script que lista todos os registros de membros.

SELECT * FROM `members`;

A execução do script acima fornece o seguintewing resultados mostrados abaixo.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


Suponha que queiramos obter uma lista que classifique o conjunto de resultados da consulta usando o campo gênero, usaríamos o script mostrado abaixo.

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Membros “femininos” foram exibidos primeiro, seguidos por membros “masculinos”, isso ocorre porque quando a cláusula ORDER BY DESC é usada sem especificar a palavra-chave ASC ou MySQL DESC, por padrão, o MySQL classifica o conjunto de resultados da consulta em ordem crescente.

Vejamos agora um exemplo que faz o classificação usando duas colunas; o primeiro é classificadas in Ordem ascendente por padrão, enquanto a segunda coluna é classificadas in ordem decrescente.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

A execução do script acima no ambiente de trabalho MySQL no myflixdb fornece o seguintewing resultados.

Exemplo DESC e ASC

A coluna de gênero foi classificada em ordem crescente por padrão, enquanto a coluna de data de nascimento foi classificada explicitamente em ordem decrescente

Por que podemos usar DESC e ASC?

Suponha que queiramos imprimir um histórico de pagamentos de um membro da videoteca para ajudar a esclarecer dúvidas da recepção. Não seria mais lógico imprimir os pagamentos em ordem cronológica decrescente, começando pelo pagamento recente até o pagamento anterior?

DESC em SQL é uma palavra-chave que se torna útil em tais situações. Podemos escrever uma consulta que classifique a lista em ordem decrescente usando a data de pagamento.

Suponha que o departamento de marketing queira obter uma lista de filmes por categoria que os membros possam usar para decidir quais filmes estão disponíveis na biblioteca ao alugá-los. Não seria mais lógico classificar os nomes e títulos das categorias de filmes em ordem crescente para que os membros podem pesquisar rapidamente as informações da lista?

A palavra-chave ASC é útil nessas situações; podemos obter a lista de filmes classificada por nome da categoria e título do filme em ordem crescente.

Resumo

  • Classificar os resultados da consulta é reorganizar as linhas retornadas de um conjunto de resultados da consulta em ordem crescente ou decrescente.
  • A palavra-chave DESC em SQL é usada para classificar o conjunto de resultados da consulta em ordem decrescente.
  • A palavra-chave ASC é usada para classificar o conjunto de resultados da consulta em ordem crescente.
  • Tanto DESC quanto ASC funcionam em conjunto com a palavra-chave ORDER BY. Eles também podem ser usados ​​em combinação com outras palavras-chave, como Cláusula WHERE e LIMITE
  • O padrão para ORDER BY quando nada foi especificado explicitamente é ASC.