سؤال
عندما أستخدم هذا الاستعلام:
SELECT COUNT(*) FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2
يقوم MySQL بتنفيذ الاستعلام بدون أخطاء وأحصل على عدد الصفوف التي لم يتم تحديثها خلال اليومين الأخيرين. ومع ذلك ، إذا قمت بتغيير الاستعلام مثل هذا:
SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2
أحصل على الخطأ التالية:
#1305 - FUNCTION mydatabase.DATEDIFF does not exist
أي أفكار لماذا هذا؟
المحلول
لقد واجهت مشكلة مماثلة حيث لن تعمل على اختيار إذا لم أقم بتعيين الحد.
حاول أن تفعل شيئًا مثل:
SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2 LIMIT 0, 10
تم تصحيحها على تحديث MySQL. حاول تحديث إصدار MySQL الخاص بك أيضًا.
نصائح أخرى
تحقق من أنه ليس لديك مساحة بين DATEDIFF
والقوس (
.
ربما يمكنك أيضًا المحاولة SET sql_mode = "IGNORE_SPACE";
تحقق أيضا من هذا تقرير الشوائب.
لا تنتمي إلى StackOverflow