【发布时间】:2011-12-21 02:16:22
【问题描述】:
是否可以像迭代一样在 while 循环中删除?
例如:
id值
1 12
1 13 - 应该删除
1 14 - 应该删除
2 15.3
2 43 - 应该删除
2 22 - 应该删除
现在我需要删除每第二和第三 ( i%2==0 || i%3==0 ) 行。
【问题讨论】:
-
对于每个 id,你只有三个值还是可以有更多?
-
使用一些脚本语言来构建和启动 SQL DELETE。
-
@Marco 只有三个值
-
您还应该检查您正在使用的条件。
( i%2==0 || i%3==0 )也会导致第四行被删除。这样会更好:( (i%2==0 && (i+1)%3==0) || i%3==0 ). -
术语“2nd”和“3rd”只有在行被排序时才有意义。那么,您的订单是什么?是:
{id, value},正如您的示例所暗示的那样? (顺便说一句,如果您使用的是 InnoDB,行本身是按 PK 排序的,但 MyISAM 不做这样的保证。)
标签: mysql sql database conditional-statements