2017-05-06 79 views
0

表名radacct radacctid是pk accountuniqueid是訂閱者在連接時生成的幾乎唯一的字符串。如何在一個mysql命令中刪除這個選擇查詢的結果?

這是輸出重複條目的mysql查詢我想在相同的命令中刪除結果y以自動執行此過程。

select * 
from radacct 
group by acctuniqueid 
HAVING 
(radacct.acctuniqueid > 1) 
+0

是否要刪除在此查詢中輸出的內容 –

+1

請注意您的期望。如果查詢顯示acctuniqueid = 100是否要刪除acctuniqueid = 100 **的每一行,或者您想只保留一行,其中acctuniqueid = 100 ** –

回答

0

我假設你在HAVING條款意味着HAVING COUNT(acctuniqueid) > 1。如果你真的要刪除所有重複的(即保持受騙者的NONE):

DELETE FROM 
    radacct 
WHERE 
    `acctuniqueid` IN (
     SELECT `acctuniqueid` FROM (
      SELECT `acctuniqueid` 
      FROM radacct 
      GROUP BY `acctuniqueid` 
      HAVING COUNT(`acctuniqueid`) > 1 
     ) x 
    ) 
; 

中介SELECT是必要的MySQL的忽視直接子選擇在同一個表引用。

請注意在刪除之前執行全表備份。

+0

謝謝你的工作得很好,超過了我在MySQL領域的能力。 – user3104909

相關問題