![]() |
שאילתת SQL מורכבת
יש לי בעיה עם איך לשלוף מידע מסויים ב-SQL,
אני צריך לשלוף שורות מהבסיס נתונים שכוללות רק ערכים שאני נותן לו, אבל לא חייב שזה יהיה מורכב מכולם, ואין אפשרות שיהיה מורכב מיותר. לדוגמא, חשבתי לעבוד עם ID שייצג לי את מה שאני צריך לשלוף, ואני שומר את כל ה-ID שאני משתמש בהם בשורה מסויימת בצורה כזאת: קוד:
|234||12||653||7841||4636| עכשיו כמו שאמרתי אני צריך לדוגמא לשלוף את כל האיידיים האלה, אבל אני נותן לו עוד איידיים חוץ מאלה. לדוגמא השאילתה צריכה להיות משהו כמו: קוד:
|234||411||12||84441||11||653||7841||31||4636| תודה מראש. |
דבר ראשון תוציא ככה
HTML קוד:
234,411,12,84441,11,653,7841,31,4636 PHP קוד:
|
חשבתי על IN, לא נראה לי שזה יעבוד.
שוב - תחשוב שאני מביא לו פשוט אוסף של איידיים (הם בעקרון לא אמורים להתקבל מהבסיס נתונים אלא מהמשתמש) ומתוכם הוא צריך להחזיר לי רק שורות שהאיידיים שלהם הם חלק מהאיידיים שהבאתי לו. אם אני משתמש ב-IN כשהערך IDS (הרשימת ID) הוא רק חלק ולא מסודר באותה צורה של ה-IN זה יעבוד גם? כאילו משהו כזה: קוד:
SELECT * FROM tbl WHERE '1,2,4,7' IN('2,3,1,7,6,4,9') |
PHP קוד:
|
תודה, אני אבדוק את זה.
בתכלס עדיין לא התחלתי לעבוד על המערכת, פשוט חשבתי על דרך לעשות משהו שם. |
ניסיתי - זה לא בדיוק עובד
קוד:
SELECT * FROM TST WHERE ContIDs IN('1','2','4','7') '1,2,4,7,8,3,11,' '1,2,3,4,7,5,6,10,8,9,11,12,' ניסיתי ב-IN לרשום פשוט '1,2,3,4,5,6,7,8,9,10,11,12', ניסיתי '1,2,4,7' (שזה ההתחלה של המבנה של השורה הראשונה) וכמו שעכשיו. הם לא עובדים.. |
אם המטרה שלך זה לשלוף משורה שיש בה: '1,2,3,4,7,5,6,10,8,9,11,12,'
תעשה ככה: PHP קוד:
|
אחי אתה ממש לא בכיוון. תקרא שוב את מה שרשמתי בהתחלה..
תסתכל מה הגבתי לשגיא על העניין של ה-IN |
לדעתי? אתה יכול לעשות כזה דבר: "WHERE id LIKE '%|23|%' OR ID LIKE '%|11|%' OR id LIKE ...."
ככה השליפה תתבצע בכל מצב כמו שצריך. רק אתה צריך להכין את המחרוזת כמו שצריך. |
מה שעומר אמר לפי דעתי כאן זה הפתרון שכותב האשכול באמת חיפש,
הבעייה היחידה שזאת שאילתה שתגזול הרבה מאוד משאבים. איתי - מה שאתה מבקש זאת בקשה שלא משנה איך תנסה לבצע אותה - היא תעלה יחסית הרבה משאבים. אם תפרט לנו בדיוק מה אתה צריך (לדוגמא: "אני בונה מערכת פורומים ואני רוצה שיהיה לי את כל התגובות לאשכול בשורה אחת במסד") נוכל אולי לכוון אותך בכלל לבצע את הדבר עצמו מזווית אחרת יותר טובה, יעילה ונוחה - ונוכל לראות אולי איך אפשר להשתמש בנתונים שונים כדי לבצע את הפעולה יותר ביעילות ובקלות. |
כל הזמנים הם GMT +2. הזמן כעת הוא 10:06. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ