إذا كنت تريد أن يكون السجل الناتج أمر عشوائيا ، يجب عليك استخدام الأكواد التالية وفقًا لعدة قواعد بيانات.
مادة زاوية
هنا سؤال: ما هي الحاجة لجلب سجل عشوائي أو صف من قاعدة البيانات؟
في بعض الأحيان قد ترغب في عرض معلومات عشوائية مثل المقالات والروابط والصفحات وما إلى ذلك للمستخدم الخاص بك.
إذا كنت تريد جلب صفوف عشوائية من أي من قواعد البيانات، فيجب عليك استخدام بعض الاستعلامات المعدلة وفقًا لقواعد البيانات.
إذا كنت تريد إرجاع صف عشوائي باستخدام MY SQL، استخدم بناء الجملة التالي:
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
لفهم هذا المفهوم عمليًا، دعونا نرى بعض الأمثلة باستخدام قاعدة بيانات MySQL. لنفترض أن لدينا عناصر جدول تم إنشاؤها في قاعدة البيانات بالبيانات التالية:
الجدول: العناصر
بطاقة تعريف | اسم العنصر | البند الكمية | سعر_الصنف | تاريخ_الشراء |
---|---|---|---|---|
1 | صابون | 5 | 2002021-07-08 | |
2 | معجون الأسنان | 2 | 80 | 2021-07-10 |
3 | قلم | 10 | خمسون | 2021-07-12 |
4 | زجاجة | 1 | 250 | 2021-07-13 |
5 | فرشاة | 3 | 90 | 2021-07-15 |
لنفترض أننا نريد استرداد أي سجل عشوائي من جدول العناصر.
وسوف نقوم بكتابة الاستعلام على النحو التالي:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
وقد نحصل على النتائج التالية:
بطاقة تعريف | اسم العنصر | البند الكمية | سعر_الصنف | تاريخ_الشراء |
---|---|---|---|---|
3 | قلم | 10 | عشرين | 2021-07-12 |
الآن دعونا نحاول تنفيذ نفس الاستعلام مرة أخرى.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
وقد نحصل على النتائج التالية:
بطاقة تعريف | اسم العنصر | البند الكمية | سعر_الصنف | تاريخ_الشراء |
---|---|---|---|---|
5 | فرشاة | 3 | 90 | 2021-07-15 |
من النتائج المذكورة أعلاه، يمكننا أن نستنتج أننا حصلنا على سجلات مختلفة كمخرجات في المرتين على الرغم من أننا قمنا بتنفيذ نفس الاستعلام مرتين. قامت الدالة RAND () بتحديد سجلات عشوائية في المرتين لنفس الاستعلام من جدول واحد. لذلك، حتى لو قمنا بتنفيذ نفس الاستعلام مرة أخرى، فسوف نحصل على مخرجات مختلفة في كل مرة. هناك احتمال نادر للحصول على نفس السجل على التوالي باستخدام الدالة RAND ().
الآن، لنفترض أنك تريد جلب كافة سجلات الجدول بشكل عشوائي.
للقيام بذلك، نحتاج إلى تنفيذ الاستعلام التالي:
mysql> SELECT * FROM items ORDER BY RAND ();
وقد نحصل على النتائج التالية:
بطاقة تعريف | اسم العنصر | البند الكمية | سعر_الصنف | تاريخ_الشراء |
---|---|---|---|---|
4 | زجاجة | 1 | 250 | 2021-07-13 |
5 | فرشاة | 3 | 90 | 2021-07-15 |
1 | صابون | 5 | 200 | 2021-07-08 |
2 | معجون الأسنان | 2 | 80 | 2021-07-10 |
3 | قلم | 10 | خمسون | 2021-07-12 |
هناك أيضًا إمكانية الحصول على بعض الترتيبات المختلفة للسجلات إذا قمنا بتنفيذ وظيفة RAND () مرة أخرى على جدول الموظفين.