تصحيح بناء جملة 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