Pesquisa de site

Obtendo o valor máximo de um campo varchar no MySQL


Use a função MAX() junto com SUBSTRING() para isso. Vamos primeiro criar uma tabela:

mysql> create table DemoTable
   -> (
   -> Id varchar(200)
   -> );
Query OK, 0 rows affected (0.52 sec)

Insira alguns registros na tabela usando o comando insert:

mysql> insert into DemoTable values('2019-0515-1980');
Query OK, 1 row affected (0.49 sec)

mysql> insert into DemoTable values('2019-0516-780');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('2019-0517-2780');
Query OK, 1 row affected (0.16 sec)

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

mysql> select *from DemoTable;

Saída

+----------------+
| Id             |
+----------------+
| 2019-0515-1980 |
| 2019-0516-780  |
| 2019-0517-2780 |
+----------------+
3 rows in set (0.00 sec)

A seguir está a consulta para obter o valor máximo de um campo varchar:

mysql> select max(Id) from DemoTable
   -> where Id LIKE  CONCAT(SUBSTRING(Id, 1, 4),'%');

Saída

+----------------+
| max(Id)        |
+----------------+
| 2019-0517-2780 |
+----------------+
1 row in set (0.00 sec)

Artigos relacionados: