Mysql DELETE删除除了最新的1000条记录的写法
2015-06-18 00:34
776 查看
如题,注意如下写法:
DELETE t1 FROM `wp_posts` AS t1 WHERE ID IN(SELECT ID FROM `wp_posts` WHERE ID < (SELECT ID FROM `wp_posts` ORDER BY ID DESC LIMIT 1 )-1000)
会提示错误
MYSQL Error Code: 1093 You can't specify target table 't1 for update in FROM clause
意为,你不能在查询某一个表的同时更改它。
因此,简单的写法:
DELETE FROM `wp_posts` WHERE ID < (SELECT MAX(ID) FROM `wp_posts`)-1000
这里使用了MAX函数。
同时记一条选出任意天数之外的记录
SELECT `post_date` FROM `wp_posts` WHERE TO_DAYS(NOW()) - TO_DAYS(`post_date`) > 30
同时删除已删除文章的属性,
DELETE FROM `wp_postmeta` WHERE `wp_postmeta`.`post_id` NOT IN (SELECT `wp_posts`.`ID` FROM `wp_posts`)
DELETE t1 FROM `wp_posts` AS t1 WHERE ID IN(SELECT ID FROM `wp_posts` WHERE ID < (SELECT ID FROM `wp_posts` ORDER BY ID DESC LIMIT 1 )-1000)
会提示错误
MYSQL Error Code: 1093 You can't specify target table 't1 for update in FROM clause
意为,你不能在查询某一个表的同时更改它。
因此,简单的写法:
DELETE FROM `wp_posts` WHERE ID < (SELECT MAX(ID) FROM `wp_posts`)-1000
这里使用了MAX函数。
同时记一条选出任意天数之外的记录
SELECT `post_date` FROM `wp_posts` WHERE TO_DAYS(NOW()) - TO_DAYS(`post_date`) > 30
同时删除已删除文章的属性,
DELETE FROM `wp_postmeta` WHERE `wp_postmeta`.`post_id` NOT IN (SELECT `wp_posts`.`ID` FROM `wp_posts`)
相关文章推荐
- 基于MySQL Adapter完成数据的增删和修改操作
- 译:MySQL性能优化的21条最佳经验
- ubuntu mysql 安装
- Mysql实用命令
- 转: mysql create view 创建视图
- 2015061703 - mysql数据类型整理
- 2015061702 - mysql从一个表中的数据插入到另一张表中
- Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'XXX' in 'whe
- mysql添加用户和入门命令
- MySQL绿色版的安装(mysql-5.6.22-win32.zip)
- mysqlimport小结
- Windows下搭建MySQL Master Slave
- MySQL "replace into" 的坑
- mysql日期相关函数使用
- 解决插入mysql反斜杠消失的问题
- MYSQL开发技巧
- Mysql创建删除索引
- Mysql误删root用户解决办法
- mysql配置文件
- MySQL Cluster(MySQL 集群) 初试