שלח תשובה

זירת השאלות

290
צפיות
4
תשובות

עניין של יעילות… שאלה

,‏ 8 בפברואר, 2005

שלום 🙂
יש לי טבלה של קטגוריות….
המכילה שדה שבתוכו נמצאים כל ה IDים שאליהם קשורה הקטגוריה… המופרדים ע"י פסיקים, דוגמא:
21,13,2,50,51

על מנת להציג את כל הקטגוריות הקשורות לID שמספרו 2 לדוגמא, אז אני עושה את זה כך:

select * from cat where uids like ‘2,%’ or uids like ‘%,2,%’ or uids like ‘%,2′ or uids=’2’

עד כמה יעילה השיטה הזו במידה וישנם אלפי רשומות של קטגוריות ומאות ערכים של IDים בכל קטגוריה?
האם יש דרך יותר יעילה לעשות זאת? (גם עם שינוי מבנה הטבלה עצמה)
כלומר לקשר קטגוריה כלשהי למספר לא מוגבל של רשומות…

תגיות:

4 תשובות

  1. sammeras הגיב:

    עדיף לטעון את כל השדה לARRAY
    ואז לחתוך אותו כשיש לך פסיק,
    דוגמה:
    CaT = Rs("CaT")
    ArrayCaT= Split(CaT, ",")

    for i=0 to ubound(ArrayCaT)
    response.write ArrayCaT(i) &"<br>"    
    ‘here u can replace and add ur cat name
    next

  2. אוריקס הגיב:

    זה איטי מאד,,,
    תעבוד כמפורט במדריך תכנון DB.

  3. זהר פלד הגיב:

    עדיף להשתמש ב IN….
    תוכל לקרוא על האופרטור IN במדריך ה SQL באתר.

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!