Mysql 删除记录

Mysql 删除记录,mysql,sql-delete,Mysql,Sql Delete,我有一个表[user_logs],其中包含以下字段[username]、[datetimelog] 样本数据 ============== user1 2011-06-28 08:49:01 user2 2011-06-28 08:59:38 user3 2011-06-28 09:04:31 user4 2011-06-28 10:00:15 user2 2011-06-28 10:28:54 user1 2011-06-29 08:31:22 user9 2011

我有一个表[user_logs],其中包含以下字段[username]、[datetimelog]

样本数据

==============
user1   2011-06-28 08:49:01
user2   2011-06-28 08:59:38
user3   2011-06-28 09:04:31
user4   2011-06-28 10:00:15
user2   2011-06-28 10:28:54
user1   2011-06-29 08:31:22
user9   2011-06-29 08:32:32
user2   2011-06-29 10:13:53
user1   2011-06-29 13:11:15
我想知道如何创建一个SQLDELETE查询来删除除最后一个日志之外的所有用户日志,以便上面的示例在删除查询之后生成以下内容

user1   2011-06-29 13:11:15
user2   2011-06-29 10:13:53
user3   2011-06-28 09:04:31
user4   2011-06-28 10:00:15
user9   2011-06-29 08:32:32
那么:

DELETE FROM 
    MY_TABLE M -- delete from the table
LEFT JOIN
    MY_TABLE M2 ON M.user = M2.user -- table needs to be joined TO ITSELF
WHERE
    NOT M.LOG_DATE = MAX( M2.LOG_DATE ) -- Anything which isn't MAX goes.
那行吗

DELETE FROM table a WHERE time != (SELECT MAX(time) FROM table b WHERE b.user=a.user);
这里删除一行,如果它不是具有相同用户id的组中的最长时间

DELETE from user_logs UL1, user_logs UL2
where UL1.username =UL2.datetimelog
and UL1.datetimelog < UL2.datetimelog

试试看

我只知道从表中删除。。。。但是不知道如何为这种情况传递条件。UL1.username=UL2.datetimelog应该是UL2.username