Подтвердить что ты не робот

Как удалить последнюю запись (по условию) из таблицы в MySql

У меня есть таблица LoginTime:

id | user_id | datetime
1  |   1     | 2011-01-17 18:51:05
2  |   1     | 2011-01-18 18:51:05  
3  |   1     | 2011-01-19 18:51:05  
4  |   2     | 2011-01-19 18:51:05  

Я хочу удалить последнюю запись для user_id=1. Последняя запись пользователя может быть распознана datetime.

Как я могу сделать это с помощью одного запроса.

4b9b3361

Ответ 1

Вам нужно отфильтровать таблицу user_id (например, WHERE user_id = 1), а затем отсортировать ее по времени (например, ORDER BY datetime), а затем ограничить запрос только одним элементом (например, LIMIT 1), и вы удалите результат этот запрос. В конце вы получите запрос следующим образом:

DELETE FROM LoginTime WHERE user_id=1 ORDER BY datetime DESC LIMIT 1

Ответ 2

DELETE FROM logintime t1 
   JOIN 
    (
     SELECT MAX(datetime) 
      AS max_dt 
      FROM logintime 
      WHERE user_id = 1
    ) t2 
WHERE t1.datetime  = t2.max_dt
   AND user_id = 1

Ответ 3

DELETE FROM table name
RIGHT JOIN (SELECT COUNT(primary key)
            FROM table name)