النتائج 1 إلى 9 من 9

الموضوع: الحل مع كثرة استعلامات SELECT ؟

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    60

    الحل مع كثرة استعلامات SELECT ؟



    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته

    مشكلتي هي كالتالي:
    لدي قاعدة بيانات تحتوى على حقل فيه عدة قيم, من 1 إلى 18.
    وأحتاج إلى عد كل القيم ذات نفس الرقم, مثلا: أحدد جميع الأعمدة التي تحتوي على واحد.
    ثم أحسب أكثرها تكراراً, فمثلاً 1 تكرر 10 مرات و 2 تكرر 8 مرات, هنا يأخذ واحد.
    والطريقة التي قمت ببرمجتها ربما بدائية وهي تنفيذ 18 استعلام SELECT لقيم مختلفة وإضافة كل قيمة إلى المصفوفة, وبالتالي أحسب الأعلى تكراراً عن طريق دالة max في php.
    ولكني لم أشعر بالراحة في هذه الطريقة , فهي بطيئة بالتأكيد!

    هل من طريقة أسرع ؟ بحيث تحدد عدد تكرار كل قيمة على حداً.

    والسلام عليكم ورحمة الله وبركاته.







  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    ممكن بنية الجدول؟





    __________________
    مدونتي

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    60


    ^^^
    البنية كالتالي:
    حقل id
    حقل username
    حقل pass
    حقل mail
    حقل level

    حقل level هنا هو الذي اتحدث عنه.






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    115


    جرب التالي:

    كود:
    SELECT level FROM table_name GROUP BY level ORDER BY count(*) DESC LIMIT 1;
    أتمنى بأنني قد استطعت المساعدة بالشكل الصحيح






  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    كود PHP:
    SELECT `levelFROM `tableGROUP BY `levelORDER BY COUNT(`level`) DESC LIMIT 1 






    __________________
    مدونتي

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    60


    شكراً لكم.. الاستعلام ممتاز لكنه يرتبها حسب الأكثر تكراراً، بينما أريد معرفة كم مرة تكرر كل عدد على حداً.
    المشكلة في هذا الإستعلام هي أنه حتى وإن تكررت قيمتان بنفس المرات - مثلاً ١ تكرر مرتين، وكذلك رقم ١٠ - لن يقوم بترتيبها على أن ١ و ١٠ متكررين بنفس المرات.
    حاولت التغيير في الاستعلام وإضافة بعض الأشياء ولكن ذلك لم يُفلح.

    أعذروني فلا أزال مبتدئاً في التعامل مع قواعد البيانات .






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    115


    لك ما تريد
    تفضل:

    كود:
    SELECT level, count(level) FROM table_name GROUP BY level ORDER BY count(*);







  8. #8
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    60


    شكراً لك، هذا بالضبط ما أحتاج إليه.
    أسعدك الله.






  9. #9
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    119


    شكرا للافادة










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض