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

时间:2016-01-08 17:15:08

标签: mysql

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

ID |工作| LOCATION

1 |福特|计费

2 |福特|运

3 |福特|递送

4 |道奇|有序

5 |雪佛兰|有序

因此,对于这个例子,我想搜索LOCATION被“交付”的任何记录,福特会匹配,然后删除所有其他记录,其中JOB是福特但LOCATION没有“交付”。

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

1 个答案:

答案 0 :(得分:0)

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

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