mysql - 使用迭代器删除 MySQL 表

标签 mysql sql database conditional-statements

是否可以像迭代一样在 while 循环中删除?
ex:

id value
1 12
1 13 - should delete
1 14 - should delete
2 15.3
2 43 - should delete
2 22 - should delete

现在我需要删除每第二行和第三行( i%2==0 || i%3==0 )行。

最佳答案

进行备份后尝试此操作:

DROP TABLE IF EXISTS temptt;
CREATE TEMPORARY TABLE temptt (`id` INT, `value` INT);
INSERT INTO temptt 
    SELECT * FROM your_table GROUP BY id;
DELETE t1.* 
FROM your_table t1 LEFT JOIN temptt t2
    ON t1.id = t2.id AND t1.value = t2.value
WHERE t2.id IS NULL;

其想法是在临时表中插入不应删除的数据,然后删除 your_table 中不在该表中的所有数据。

关于mysql - 使用迭代器删除 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993995/

相关文章:

MySql 为搜索过滤器准备sql语句

mysql - EMS MySQL 管理器迁移

mysql - 表中的数据库列限制

mysql - 为什么安装成功后在gem list下没有出现mysql?

sql - 内联标量函数 : real or vaporware?

php - 使用标签执行图像搜索

c# - 向多个用户显示由另一个用户插入的数据更新

mySQL结构/关系思路

sql - 最佳计算问题数据库

php - 将MySQL请求结果放入表中