يدعم أمر DELETE الخاص بجدول واحد في MySQL استخدام ORDER BY وLIMIT. يحدد الترتيب الصفوف التي تأتي أولًا، ثم يحدد الحد أقصى عدد يحذف منها. هذه الطريقة مفيدة لتنظيف البيانات على دفعات، بدل حذف جميع الصفوف المطابقة في عملية واحدة كبيرة.
إذا أردنا حذف أقدم مهمتين، نرتب حسب تاريخ الإنشاء تصاعديًا. وعندما تتساوى التواريخ، نضيف عمودًا فريدًا مثل المفتاح الأساسي حتى يكون الاختيار محددًا. كتابة LIMIT 2 وحدها لا تعني أن MySQL سيحذف أقدم صفين؛ فلا يوجد ترتيب زمني ضمني مضمون دون شرط ترتيب صريح.
مثال
DELETE FROM tasks
ORDER BY created_at ASC, id ASC
LIMIT 2;
يمكن إضافة WHERE قبل الترتيب لقصر التنظيف على المهام المنتهية مثلًا. عندئذ يرتب الأمر الصفوف المطابقة فقط ويختار منها الدفعة المطلوبة للحذف، مع بقاء بقية الصفوف دون تغيير.
باختصار: اجمع الترتيب الواضح مع LIMIT لحذف دفعة محددة يمكن توقع صفوفها.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.