![]() |
# 1 |
חבר מתקדם
|
בשאילתת UPDATE יד דרך לדעת את מספר העידכון?
לדוגמא, יש לי 5 משתמשים, ויש תא בשם number,
אני רוצה בשאילתה אחת לעדכן בכולם מספרים שונים! לדוגמא update users set number=something++ אם זה גם ככה עובר על כל המשתמשים, אז יש איזו דרך לעדכן גם מספר שונה אצל כל אחד לפי הסדר שהוא מעדכן אותו? מקווה שהבנתם |
![]() |
![]() |
# 2 |
חבר וותיק
|
UPDATE `tbl` SET `counter`=`counter`+1;
|
![]() |
![]() |
# 3 |
חבר מתקדם
|
אני לא רוצה להגדיל את התא ב1, אני רוצה להכניס לשם מספר לפי סדר העידכון של השאילתה
|
![]() |
![]() |
# 5 |
חבר וותיק
|
למה מראש לא לתת להם AUTO INCREMENT?
אפשרות אחרת היא שימוש בPHP. אפשרות נוספת היא במידה ויש auto increment מסויים לעשות פעולה שעושה id+1. Last edited by AlmogBaku; 08-02-10 at 07:25.. |
![]() |
![]() |
# 7 |
מנהל פורום, עסק רשום
|
אם הבנתי נכון אתה מעוניין לעדכן מונה מסויים לכל אחד מהמשתמשים בטבלה בתוך שדה NUMBER כך שבין משתמש למשתמש יהיה הפרש של אחד.
הדרך היחידה לעשות את זה באמצעות שאילתא היא לשלוף את כל המשתמשים מהטבלה לתוך מערך, אח"כ לרוץ על המערך ולכל אחד מהמשתמשים לעדכן באמצעות שאילתא כזאת: קוד:
Update Users Set Number={i} Where UserId={UserId} {i} זהו המונה שכל פעם גדל ב-1 (יכול להיות מונה הלולאה ויכול להיות משהו אחר - לפי הצורך {UserId} - זהו מספר המשתמש שלפני רגע שלפת מהטבלה |
![]() |
![]() |
# 8 |
חבר מתקדם
|
לא הבנתם, לא בהכרח אני רוצה לרוץ על כל המשתמשים, ואם אני רוצה רק כאלה בגיל מסויים, אז שייעדכן רק 26 מתוך 100 משתמשים ובכל אחד מהם יהיה תא שגדול מהאחר ב1 בלבד לפי סדר העידכון, וכל זה בלי לולאה של php אלא בשאילתה אחת בלבד. (כי לולאה מאריכה את התהליך)
|
![]() |
![]() |
# 9 |
מנהל פורום, עסק רשום
|
בלי לולאה בצד שרת אתה לא ממש יכול.
הפתרון השני יהיה פרוצדורה שעושה לולאה ב-DB. בכל מקרה, באמצעות שאילתא אחת לא תוכל. ואם אתה לא רוצה לרוץ על כל המשתמשים, כמובן בשאילתא הראשונה שממלאת את המערך שלך, אתה יכול להגדיר את מי אתה רוצה בדיוק.. |
![]() |
![]() |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
כלים לאשכול | |
תצורת הצגה | |
|
|