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