当前位置:数据库 > MySQL >>

mysql什么删除排序后第一百条以后的所有数据

可以用php辅助,删除order by后第100条以后的数据。把旧数据删除,留前100条新数据
追问:思路不错,不过这个地方mysql报错,“SELECT count(id) FROM tablename”已经改了。例如把上面的 tablename(如user) ,和id改成自己的(如UID)。count(id) 如改成count(UID)。报1064(42000):you have an error in you SQL syntax;....near (SELECT count(DID) FROM user)我的mysql版本不支持这条语句
答案:DELETE FROM tablename ORDER BY id LIMIT 100,(SELECT count(id) FROM tablename)你试试
其他:建立一临时表,用php将原表排序后的前100条数据写入临时表,将原表数据删除,将临时表数据写回原表。 第一步:按排序取100条数据。
select id from tablename order by id desc limit 100;
第二步:删除排序字段>或者<(这个看你怎么排的)第100条该字段的记录。
delete from tablename where id<1000;  //假设上面查询出来的第100条记录的id是1000。 delete from table where id not in (select id from table order by id limit 100)

这个肯定没问题,直接一句SQL搞定 感觉还是建一个临时表比较稳妥 

上一个:MYSQL时间段查询
下一个:新手关于mysql存储过程的小问题

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,