Como atualizar o tempo de login do usuário para um usuário específico no MySQL?
Para isso, use ORDER BY junto com LIMIT. Vamos primeiro criar uma tabela onde temos uma coluna com ID do usuário, horário de login e nome:
mysql> create table DemoTable1911
(
UserId int,
UserLoggedInTime time,
UserName varchar(20)
);
Query OK, 0 rows affected (0.00 sec)
Insira alguns registros na tabela usando o comando insert:
mysql> insert into DemoTable1911 values(100,'7:32:00','Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1911 values(101,'5:00:00','David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1911 values(102,'6:10:20','Mike');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1911 values(103,'3:55:00','Carol');
Query OK, 1 row affected (0.00 sec)
Exiba todos os registros da tabela usando a instrução select:
mysql> select * from DemoTable1911;
Isso produzirá a seguinte saída:
+--------+------------------+----------+
| UserId | UserLoggedInTime | UserName |
+--------+------------------+----------+
| 100 | 07:32:00 | Chris |
| 101 | 05:00:00 | David |
| 102 | 06:10:20 | Mike |
| 103 | 03:55:00 | Carol |
+--------+------------------+----------+
4 rows in set (0.00 sec)
Aqui está a consulta para atualizar o tempo de login de um usuário específico “Carol”:
mysql> update DemoTable1911
set UserLoggedInTime='12:30:45'
where UserName='Carol'
order by UserId DESC
Limit 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Vamos verificar os registros da tabela mais uma vez:
mysql> select * from DemoTable1911;
Isso produzirá a seguinte saída:
+--------+------------------+----------+
| UserId | UserLoggedInTime | UserName |
+--------+------------------+----------+
| 100 | 07:32:00 | Chris |
| 101 | 05:00:00 | David |
| 102 | 06:10:20 | Mike |
| 103 | 12:30:45 | Carol |
+--------+------------------+----------+
4 rows in set (0.00 sec)