mysql - 如何根据多列和条件对记录进行排序和删除?

标签 mysql

我有一个 SQL 数据库,它在工作流中获取项目,然后在它们移动到下一个位置时添加它们的新记录(非常糟糕的设计,我知道......我没有做到)。但例如:

编号 |职位 |地点

1 |福特 |计费

2 |福特 |已发货

3 |福特 |交付

4 |道奇 |订购

5 |雪佛兰 |订购

所以对于这个例子,我想搜索 LOCATION 是“已交付”的任何记录,Ford 会匹配该记录,然后删除 JOB 是 Ford 但 LOCATION 未“已交付”的所有其他记录。

由于其设置方式,此数据库中有超过 93,000 条记录。因此,我正在尝试清除它,希望能加快前任员工为我现在工作的公司编写的自定义应用程序的速度。

最佳答案

您可以使用多表 DELETE 语法来执行自连接:

DELETE a
FROM   myTable a JOIN myTable b USING (job)
WHERE  b.location  = 'delivered'
   AND a.location != 'delivered'

关于mysql - 如何根据多列和条件对记录进行排序和删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682523/

相关文章:

大型表中排序查询的 mysql 性能改进

MySQL 多表搜索

php - 仅在 72 小时内运行的 MySQL 查询

java - 为什么我不能在 Hibernate/Struts 中访问新创建的记录?

PHP & SQL : Subquery not working

php - 如何在 HTML 水平表中显示 mysql 查询输出

mysql - 为什么我的 mysql 不授予用户权限?

mysql - 授予权限时出错

mysql - mysql是否使用了我的索引,geokit的性能可以提高吗?

database - 如何修复从远程服务器将 EE 数据库导入本地主机时收到的 #1062 错误