الانتقال إلى المحتوى

إستعلام يحذف السجلات المتكررة


a5hhk

Recommended Posts

هل هناك إستعلام يحذف السجلات المتكررة
بحيث يحذف السجل المتكرر فقط
فلو كان هناك سجل متكرر
1925 ادارة بيانات جيد
1925 ادارة بيانات جيد
فبعد الأستعلام يكون هناك سجل واحد فقط
1925 ادارة بيانات جيد

رابط هذا التعليق
شارك

لا بد من وجود Primay Key لتمييز السجلات المطلوب حذفها
مثال إذا افترضنا ان الجدول Tو اسماء الحقول كالتالي
DESC- F1- id
------------------------
1 1925 ادارة بيانات جيد
2 1925 ادارة بيانات جيد

بالتالي يمكن حذف جميع السجلات المكرره والبقاء علي سجل واحد فقط كالتالي
delete from T where id in(select id from T where id not in
(select min(id) from T group by F1))

تم تعديل بواسطة bogii
رابط هذا التعليق
شارك

اليك الشرح

الجزء الرئيسي في الاستعلام عمل select لل IDs للسجلات المطلوب الاحتفاظ بها وعدم ومسحها وهي سجل واحد من كل مجموعه مكرره
select min(id) from T group by F1
حيث ان F1 هو اسم الحقل الذي يتم تكراره وهوا كما ذكرت في مثالك= 1925


ثم يأتي بقية الاستعلام بحذف كل السجلات من الجدول فيما عدا من بها IDs التي تحتوي علي سجلات غير مكرره والتي حصلنا عليها من الخطوه
السابقه
delete from T where id in(select id from T where id not in
(select id from T where id not in(select min(id) from T group by F1))

رابط هذا التعليق
شارك

السلام عليكم

==========
لحذف السجلات المكررة
اعتقد انى قد رأيت هذه المشاركة من قبل
ولكن مش متذكر
==========
المهم
خد الطريقة دى وان شاء الله تشتغل

DELETE FROM my_table 
WHERE ROWID NOT IN (SELECT MIN(ROWID) 
                      FROM my_table 
                     GROUP BY delete_col_name);
Ex:-
delete duplicate row of emp table that have the same empno

DELETE FROM emp 
 WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM emp GROUP BY empno);



وبالتوفيق للجميع
:P :D

رابط هذا التعليق
شارك

السلام عليكم
اظن انه يمكن استخدام التالي
مثلا لخدف صف متكرر ف جدول الـ Emp
Name Id
1925 مرسي محمد
1925 مرسي محمد
يمكن عمل التالي
delete from emp M
where id in ( select id
from emp
where (select count(*) from emp
where id = M.id) >1

و هجربها ان شاء الله وارد عليكو
لأني اظن ان كمان فيه طريقة اسرع من الـ subquery دي
و شكرا

تم تعديل بواسطة hany1900
رابط هذا التعليق
شارك

  • بعد 3 سنة...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية