15-07-2005, 05:05
|
|
|
חבר מתאריך: 20.02.03
הודעות: 2,396
|
|
ומה קורה אם אתה רוצה למחוק 1000 פריטים? אמנם במערכת כמו חנות לדוגמא זה לא רלוונטי, אולם מה עם אלבום תמונות למשל?
הרעיון של לעבור פריט פריט ולהריץ שאילתא ניפרדת עבורו הוא בזבזני ולא חכם. השיטה הנכונה והיעילה לעשות זאת היא לרכז את כלל ה ID-ים של הפריטים המיועדים למחיקה כמחרוזת ושימוש באופרטור IN על מנת למחוק את כלל השורות בטבלה אשר ה ID שלהם נמצא בתוך "מחלקת הערכים" המדוברת.
דוגמא:
קוד:
DELETE FROM `tbl1` WHERE `id` IN (1,6,9,12,154,234,523)
דוגמא נוספת עם שימוש ב PHP. נניח כי יש לנו מערך ar$ המכיל את כלל ה id-ים של השורות אותם אנו רוצים למחוק, נוכל להשתמש בקוד הבא על מנת למחוק את אותן שורות בשאילתא אחת:
קוד PHP:
$ar = array(1,6,9,12,154,234,523); $list = implode(",",$ar); // $list = "1,6,9,12,154,234,523" mysql_query("DELETE FROM `tbl1` WHERE `id` IN ($list)",$link) or die(mysql_error());
בברכה, דקל
_____________________________________
"מתכנת זה אדם שפותר בעיה שעל קיומה לא ידעת, בדרך שאינך מבין"
|