الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إيجاد مجموعة من السجلات من قاعدة البيانات بشكل عشوائي

بدأه kathy في 28 مايو 2008 · 7 رد · 1,012 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم,,

لنفرض أن لدينا جدول به 100 سجل هل يمكن إسترجاع عشرة سجلات بشكل عشوائي

شكرا

#2

السلام عليكم اخي الكريم

انا مبتدأ في هذا المجال

ولكن عندي فكرة لعلها تفيدك في سؤالك

-------------------------------

اذا تمكنت من تكوين ارقام عشوائية من رقم معين الى رقم آخر

وفي حالتنا هي عشرة ارقام من الرقم 1 الى الرقم 10

------------------------------------

وهذا هو الاقتران

-------------------------------------

Private Function GetRandomNumber(ByVal vnMinimumNumber As Integer, ByVal vnMaximumNumber As Integer)

Randomize() 'This sets a random seed to use with the Rnd function below.

'The Rnd Function returns a random number less than 1 but greater than or equal to 0

'The following line of code returns a random value between the

'vnMinimumNumber and mnMaximum number values passed into this method

GetRandomNumber = CInt(Int((vnMaximumNumber - vnMinimumNumber + 1) * Rnd() + vnMinimumNumber))

End Function

وبعدها يجب ان تعمل جملة بحث في الداتا سيت ضمن جدول البيانات

في كل مرة تقوم باستدعاء الاقتران السابق بأن يساوي رقم مخزن في الجدول

مثال : الرقم الراجع من الاقتران يساوي رقم مخزن في الجدول ترقيم تلقائي

وسامحنا با اخي اذا لم تكن الفكرة قوية ولكن ما اردنا الا الفائدة لكم

وموفق ان شاء الله

ملاحظة : الاقتران يمكن ان يرجع رقم عشوائي متكرر فيمكنك ان تعدل عليه بأن يعطيك عشرة ارقام عشوائية مختلفة غير متكررة

تم تعديل هذه المشاركة بواسطة Aladdin Mohammad في 28 مايو 2008 في 20:09

#3

شكرا على ردك,,, لكن أنا أريد إسترجاع سجلات عشوائية في جملة sql بمعنى هل يمكن عمل إستعلام يقوم بذلك؟

#4

اخي الكريم

اتريد مثل هذا الاستعلام لكنه يرجع سجل واحد من جدول عشوائيا

-----------------------

لو كان عندك جدول احد حقوله

"id"

--------------------

واردت جملة سيكويل ترجع سجل معين حسب الحقل المعرف ويكون الاختيار عشوائي

----------------------------------------------

هذا مثال يوضح طريقة باستخدام جملة سيكويل

-----------------------------------

Dim sSQL As String = "SELECT id from aa order by NewID()"

Dim objCmd As New SqlCommand(sSQL, objConn)

Dim i As Integer

i = objCmd.ExecuteScalar()

MsgBox(i)

#5

واذا اردت استعلام يرجع 10 سجلات عشوائيا من جدول البيانات

SELECT TOP 10 tablename.* FROM tablename order by NewID()

واكيد هذا الذي ترغبه

موفق ان شاء الله

تم تعديل هذه المشاركة بواسطة Aladdin Mohammad في 29 مايو 2008 في 00:05

#6

شكرا على ردك مرة أخرى

لكن أرقام السجلات تكون متقاربة في كل مرة تنفيذ ولم أشعر بأن العشوائية تامة بحيث لا تتكرر السجلات بشكل متقارب

تم تعديل هذه المشاركة بواسطة kathy في 29 مايو 2008 في 10:55

#7

الحمد لله انها زبطت معك

كل مرة استدعي فيها السجل العشوائي قم بمقارنته مع السجل العشوائي المختار سابقا

اذا تكرر استدعي الجملة مرة اخرى لاختيار سجل آخر

#8
اقتباس
كل مرة استدعي فيها السجل العشوائي قم بمقارنته مع السجل العشوائي المختار سابقا

اذا تكرر استدعي الجملة مرة اخرى لاختيار سجل آخر

لاأعتقد أن هذة الطريقة جيدة لأن هذة العملية سوف تبطئ نوعاً ما

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…