"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حذف نطاق من الصفوف باستخدام LIMIT في بيان MySQL DELETE؟

كيفية حذف نطاق من الصفوف باستخدام LIMIT في بيان MySQL DELETE؟

تم النشر بتاريخ 2024-11-09
تصفح:732

How to Delete a Range of Rows Using LIMIT in MySQL DELETE Statement?

تصحيح بناء جملة MySQL DELETE باستخدام LIMIT

عند محاولة حذف نطاق من الصفوف من جدول MySQL باستخدام عبارة DELETE مع جملة LIMIT، قد تواجه خطأ إذا كان بناء الجملة غير صحيح. يشير هذا الخطأ عادةً إلى وجود مشكلة في بناء الجملة المستخدم لتحديد الحد.

المشكلة في الاستعلام المقدم هي أنه لا يمكنك تحديد إزاحة في جملة LIMIT لعبارة DELETE. بناء جملة استخدام جملة LIMIT في عبارة DELETE هو LIMIT ، دون تحديد إزاحة أو نقطة بداية.

لحل هذه المشكلة، تحتاج إلى إعادة كتابة الاستعلام الخاص بك لتحديد الصفوف المراد حذفها بشكل أكثر دقة. إحدى الطرق للقيام بذلك هي استخدام جملة IN لتحديد معرفات الصفوف التي تريد حذفها ثم استخدام تلك المعرفات لتصفية الصفوف في عبارة DELETE.

إليك مثال لكيفية إعادة الكتابة استفسارك:

DELETE FROM `chat_messages` 
WHERE `id` IN (
    SELECT `id` FROM (
        SELECT `id` FROM `chat_messages`
        ORDER BY `timestamp` DESC
        LIMIT 20, 50
    ) AS `x`
)

في هذا الاستعلام، نستخدم أولاً استعلامًا فرعيًا لتحديد معرفات الصفوف التي نريد حذفها. بعد ذلك، نستخدم جملة IN في عبارة DELETE الرئيسية لتصفية الصفوف بناءً على تلك المعرفات، مما يؤدي إلى حذف النطاق المطلوب من الصفوف.

من المهم ملاحظة أنك قد تحتاج إلى إجراء تعديلات على يعتمد الاستعلام على البنية المحددة لجدولك والسلوك المطلوب.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3