שלח תשובה

זירת השאלות

390
צפיות
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 באתר.

שלח תשובה