![]() |
# 1 |
חבר וותיק
|
שאלה בSQL
שלום, נגיד יש לי את השאילתה הזאת:
PHP קוד:
בשאילתה וכמובן לקבוע את הid שימחק. כמובן שאשמח לעשות זאת בלי לעשות תשאילתה מחדש תודה רבה! |
![]() |
![]() |
# 2 |
кто ты?
|
עד כמה שידוע לי, אין אפשרות לשלב אין SELECT וDELETE,
שכן ל DELETE יש הגדרת WHERE משל עצמו. SELECT נועד על מנת לקבל נתונים לפי קריטריון מסויים ו DELETE נועד על מנת למחוק רשומות לפי קריטריון מסויים אני לא מבין איפה קיימת הבעיתיות בלשלוח עוד שאילתה למסד למחיקה...? |
![]() |
![]() |
# 3 |
חבר מתקדם
|
זה נקרא sub queries
לדוגמא: קוד:
DELETE FROM <tablename> WHERE id = (SELECT id from <tablename> WHERE id ='1') |
![]() |
![]() |
# 4 |
עסק רשום [?]
|
הDELETE חייב לבוא לפני הSELECT אם אתה רוצה לעשות תת שאילתה כמו במקרה של ודים.
בכל מקרה התת שאילתה כאן מיותרת אם אתה משתמש באותה טבלא. Delete from "TABLE" Where ID=IDNUMBER ימחק את כל השורה של המספר שציינת בID. בהצלחה ![]()
__________________
שעוני דיפ בלו - שעוני צלילה יוקרתיים!
http://www.deepbluewatches.co.il ניתן להשיג בכרונו 7\24 והמשווקים המורשים |
![]() |
![]() |
# 5 |
חבר וותיק
|
למה זה טוב שימוש בשאילתות כאלה?
__________________
משחקים ברשת | גוגל אדסנס | ![]() ICQ# 281246054 MSN: quad_23@hotmail.com |
![]() |
![]() |
# 6 |
חבר מתקדם
|
אכן, אם ה ID ידוע כבר לא צריך לבצע שאילתה כדי לשלוף את ה ID אבל אם לדוגמא יש לך את השם של המשתמש ואתה רוצה למחוק את הנתונים שלו מטבלה אחרת (או מאותה טבלה לפי ID) אז אתה מבצע שאילתת SELECT בתוך ה DELETE כפי שמוצג מעלה.
למה זה טוב? דבר ראשון זה מונע ממך לבצע כמה שאילתות כל פעם אחת אחרת. אפשר היה לעשות שאילתה של SELECT שמחזירה את ה ID ואז עם ה ערך של ה ID לבצע שאילתת DELETE נוספת. זה יגרום לביצוע של 2 שאילתות (שזה מיותר מבחינת אופטימיזציה) לעומת ביצוע שאילתה אחת שמבצעת שאילתה נוספת פנימית. בדרך כלל MYSQL מריץ את השאילתה הזאת בתור שאילתה אחת ולא מחלק אותה לכמה שאליתות, (בניגוד ל joins ו ו unions ). עוד דבר שלפעמים נותן יתרון זה ש sub queries (תתי שאילתות) כתובות בצורה קריאה יותר מאשר ה JOINS ו UNIONS למיניהם. |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|