【发布时间】:2010-10-29 14:51:49
【问题描述】:
我有一张这样的桌子:
CREATE TABLE vhist ( id int(10)
unsigned NOT NULL auto_increment,
userId varchar(45) NOT NULL,
mktCode int(10) unsigned NOT NULL,
insertDate datetime NOT NULL,
default NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
一个用户可以有多个记录。 我需要一条 SQL 语句,它将保留最近的 50 条记录并删除该限制之后的任何内容。
我需要在一个 sql 语句中。
我试过了,但失败了
delete from vhist v where v.id not in
(select v.id from vhist v where
v.userId=12 order by insertDate desc
limit 50)
但这在 MYSQL 上失败了,说 IN 不能有限制地使用。
有什么帮助吗?
【问题讨论】:
标签: mysql subquery sql-delete