我的數據是這樣的:查找列
+--------------+------------+----------+
| name | id | data | date |
+-------+------+-----------------------+
| host1 | 1 | data1 |07/20/2017|
| host1 | 1 | data2 |07/20/2017|
| host2 | 2 | data1 |07/20/2017|
| host2 | 3 | data1 |07/19/2017|
| host3 | 4 | data1 |07/20/2017|
| host3 | 4 | data2 |07/20/2017|
| host3 | 4 | data3 |07/20/2017|
| host3 | 4 | data4 |07/20/2017|
| host4 | 5 | data3 |07/20/2017|
| host4 | 6 | data4 |07/17/2017|
+-------+------+------------+----------+
我需要能夠從表中刪除了一些過時的數據。數據對於每個對象都有多行。但是我需要能夠搜索表格並找到「名稱」匹配但「ID」不匹配的實例。然後刪除較舊的記錄。在上面的數據示例中,我想delete from tableName where ID = '3' or '6'
我已經能夠使用以下查詢來隔離哪些不匹配,但我無法弄清楚如何逐步通過每一個(特別是如果有是需要刪除的多個「名稱」)。
SELECT *
FROM tableName
WHERE NAME IN (SELECT T1.NAME
FROM aid2245.tableName T1
INNER JOIN aid2245.tableName T2
ON T1.NAME = T2.NAME
WHERE T1.ID <> T2.ID)
任何幫助,將不勝感激。
謝謝!