حدد السجل الأحدث حسب التاريخ في SQL

Hdd Alsjl Alahdth Hsb Altarykh Fy Sql



عند العمل في قاعدة بيانات SQL، قد تصادف مثيلاً تحتاج فيه إلى استرداد أحدث سجل من جدول معين بناءً على التاريخ. يمكن أن يكون هذا لأغراض ترقيم الصفحات، وإدارة المخزون، وأغراض المراقبة، وما إلى ذلك.

في هذا الدليل، سنرشدك عبر الأساليب والتقنيات المختلفة التي يمكننا استخدامها لتحديد أحدث سجل من جدول بناءً على التاريخ.

بيانات العينة

لأغراض العرض التوضيحي، نستخدم نموذج قاعدة بيانات Sakila المتوفرة لنكهات MySQL وPostgreSQL.







لا تتردد في تنزيل واستيراد نموذج قاعدة البيانات على الخادم الخاص بك. يمكنك أيضًا استخدام أي مجموعة بيانات أخرى حسب الاقتضاء.



مثال 1: الطلب حسب

الطريقة الأساسية والأبسط التي يمكننا استخدامها لاسترداد أحدث سجل حسب التاريخ هي استخدام جملة SQL ORDER BY.



يمكننا ترتيب السجلات بترتيب تنازلي بناءً على قيمة التاريخ ثم قصر النتيجة على صف واحد فقط.





خذ على سبيل المثال جدول الإيجار من نموذج قاعدة بيانات Sakila. ويحتوي على عمود 'rental_date' الذي يشير إلى تاريخ استئجار الفيلم.

يمكننا استخدام هذا لتوضيح كيفية استخدام جملة ORDER BY لاسترداد أحدث سجل من الجدول.



يختار *

من الإيجار

طلب حسب تاريخ الإيجار DESC

حد 1 ;

في هذه الحالة، نستخدم جملة ORDER BY ونمرر 'rental_date' كعمود الهدف. نضمن أيضًا إخبار قاعدة البيانات بترتيب السجلات بترتيب تنازلي.

وأخيرًا، نقوم أيضًا بتحديد عدد سجلات المخرجات التي يجب أن تعرض أحدث صف من الجدول.

مثال 2: استخدام الدالة Max()

هل تعلم أنه يمكننا استخدام الدالة max() في قيم التاريخ؟ نعم، يمكننا استخدام استعلام فرعي بسيط لـ SQL والدالة max()‎ لقيم التاريخ لاسترداد أحدث سجل من جدول معين.

خذ بعين الاعتبار المثال التالي:

يختار *

من الإيجار

أين Rental_date = (SELECT MAX(rental_date) FROM rent);

يؤدي استخدام الاستعلام الفرعي إلى العثور على الحد الأقصى لتاريخ الإيجار من الجدول. في الاستعلام الرئيسي، يجب علينا إحضار السجلات باستخدام 'تاريخ_التأجير' الذي يساوي الحد الأقصى للتاريخ.

المثال 3: وظائف النافذة

بالنسبة لقواعد البيانات التي تدعم وظائف النافذة، يمكننا استخدام استعلام فرعي ووظيفةrow_number() لاسترداد أحدث سجل من الجدول كما يلي:

يختار *

من (

يختار *،

ROW_NUMBER() أكثر من ( طلب حسب rent_date DESC) AS rn

من الإيجار

) كما استعلام فرعي

حيث ص = 1 ;

في المثال الموضح، يقوم الاستعلام الفرعي بتعيين رقم صف لكل صف بناءً على عمود 'rental_date' بترتيب تنازلي باستخدام وظيفة النافذة ROW_NUMBER().

يقوم الاستعلام الخارجي بعد ذلك بتحديد كافة الأعمدة من الاستعلام الفرعي حيث يكون رقم الصف 1، مما يؤدي بشكل فعال إلى تحديد أحدث سجل (سجلات) للإيجار.

خاتمة

في هذا المنشور، استكشفنا الأساليب والتقنيات المختلفة التي يمكننا استخدامها لجلب أحدث سجل بناءً على التاريخ.