如题,注意如下写法:
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`)