Mysql,每行删除几行N行

时间:2016-08-05 09:43:01

标签: mysql

我解释了问题,以及我试图实现的解决方案。我有一个包含大量数据的表,我想删除每5行4行。目的是让桌子更轻便。

这是我的要求:

SET @var_name = -1;
DELETE FROM myTable
   WHERE id IN
   (
   SELECT id FROM myTable HAVING (@var_name := @var_name +1) % 5 !=0
   )

SELECT操作正常,但与DELETE操作一起,我收到此消息

#1093 - Table 'myTable' is specified twice, both as a target for 'DELETE' and as a separate source for data 

我理解其含义:我无法删除请求中的表格。可以采用解决方法:在控制台中获取完整列表,然后执行DELETE操作。在一行中执行它会更好。

谢谢你的帮助。 非常感谢

1 个答案:

答案 0 :(得分:1)

你试试这个吗?

SET @var_name = -1;
DELETE FROM myTable WHERE (@var_name := @var_name +1) % 5 = 0