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)