Pesquisa de site

Como colocar o número 0 de uma coluna no final mantendo a ordem de pesquisa crescente no MySQL?


Vamos primeiro criar uma tabela:

mysql> create table DemoTable
   -> (
   -> Number int
   -> );
Query OK, 0 rows affected (0.58 sec)

Insira alguns registros na tabela usando o comando insert:

mysql> insert into DemoTable values(9);
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values(4);
Query OK, 1 row affected (0.31 sec)

mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values(7);
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable values(11);
Query OK, 1 row affected (0.12 sec)

Exiba todos os registros da tabela usando a instrução select:

mysql> select *from DemoTable

Saída

Isso produzirá a seguinte saída:

+--------+
| Number |
+--------+
|      9 |
|      4 |
|      0 |
|      7 |
|     11 |
+--------+
5 rows in set (0.00 sec)

A seguir está a consulta para usar ORDER BY e colocar 0 no final, mantendo a ordem de pesquisa crescente:

mysql> select *from DemoTable order by Number=0,Number;

Saída

Isso produzirá a seguinte saída:

+--------+
| Number |
+--------+
| 4      |
| 7      |
| 9      |
| 11     |
| 0      |
+--------+
5 rows in set (0.00 sec)

Artigos relacionados: