ऐसा करने का एक तरीका LEFT JOIN
. का उपयोग करके एक सबक्वेरी पर तालिका में शामिल होना है . सबक्वेरी को सबसे कम ID
मिलता है प्रत्येक UID
. के लिए . जब किसी रिकॉर्ड का सबक्वेरी पर मिलान नहीं होता है, तो इसका सीधा सा मतलब है कि उसका कोई मेल खाने वाला रिकॉर्ड नहीं है और उसे सुरक्षित रूप से हटाया जा सकता है।
DELETE a
FROM TableName a
LEFT JOIN
(
SELECT uid, MIN(ID) min_ID
FROM TableName
GROUP BY uid
) b ON a.uid = b.uid AND
a.ID = b.min_ID
WHERE b.uid IS NULL
हालांकि, अगर UID
. के रिकॉर्ड अलग-अलग नाम हो सकते हैं, तो आपको name
. शामिल करना होगा group by
. पर खंड या फिर केवल अद्वितीय uid
सबसे कम ID
. के साथ रहेगा।
DELETE a
FROM TableName a
LEFT JOIN
(
SELECT uid, MIN(ID) min_ID, name
FROM TableName
GROUP BY uid, name
) b ON a.uid = b.uid AND
a.ID = b.min_ID AND
a.name = b.name
WHERE b.uid IS NULL