הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בשאילתת UPDATE יד דרך לדעת את מספר העידכון? (https://hosts.co.il/forums/showthread.php?t=81111)

רומן 07-02-10 21:20

בשאילתת UPDATE יד דרך לדעת את מספר העידכון?
 
לדוגמא, יש לי 5 משתמשים, ויש תא בשם number,
אני רוצה בשאילתה אחת לעדכן בכולם מספרים שונים!
לדוגמא
update users set number=something++

אם זה גם ככה עובר על כל המשתמשים, אז יש איזו דרך לעדכן גם מספר שונה אצל כל אחד לפי הסדר שהוא מעדכן אותו? מקווה שהבנתם

AlmogBaku 07-02-10 22:26

UPDATE `tbl` SET `counter`=`counter`+1;

רומן 07-02-10 22:57

אני לא רוצה להגדיל את התא ב1, אני רוצה להכניס לשם מספר לפי סדר העידכון של השאילתה

MasterNetwork 08-02-10 02:40

אתה רוצה לעדכן את כל המשתמשים?
או שאתה רוצה ספציפי?
או שאתה רוצה טווח?
תפרט, לא ממש הבנתי..
אם אתה רוצה את כל המשתמשים אתה יכול לעשות update לכולם
אם אתה רוצה ספציפי אתה יכול לעשות update ספציפי
אם אתה רוצה טווח אתה יכול לעשות לולאה שבתוכה יהיה update למשתמש ספציפי

AlmogBaku 08-02-10 07:21

למה מראש לא לתת להם AUTO INCREMENT?
אפשרות אחרת היא שימוש בPHP.

אפשרות נוספת היא במידה ויש auto increment מסויים לעשות פעולה שעושה id+1.

MasterNetwork 09-02-10 02:33

ציטוט:

נכתב במקור על ידי Baku (פרסם 755223)
למה מראש לא לתת להם AUTO INCREMENT?
אפשרות אחרת היא שימוש בPHP.

אפשרות נוספת היא במידה ויש auto increment מסויים לעשות פעולה שעושה id+1.

אחי, הוא לא רוצה ב-insert... הוא כתב ב-update
בקיצר, לא ניראלי שבאמת מישהו מאיתנו הבין בדיוק מה הוא רצה..

IgalSt 09-02-10 12:28

אם הבנתי נכון אתה מעוניין לעדכן מונה מסויים לכל אחד מהמשתמשים בטבלה בתוך שדה NUMBER כך שבין משתמש למשתמש יהיה הפרש של אחד.

הדרך היחידה לעשות את זה באמצעות שאילתא היא לשלוף את כל המשתמשים מהטבלה לתוך מערך, אח"כ לרוץ על המערך ולכל אחד מהמשתמשים לעדכן באמצעות שאילתא כזאת:
קוד:

Update Users Set Number={i} Where UserId={UserId}
כאשר -
{i} זהו המונה שכל פעם גדל ב-1 (יכול להיות מונה הלולאה ויכול להיות משהו אחר - לפי הצורך
{UserId} - זהו מספר המשתמש שלפני רגע שלפת מהטבלה

רומן 10-02-10 09:02

לא הבנתם, לא בהכרח אני רוצה לרוץ על כל המשתמשים, ואם אני רוצה רק כאלה בגיל מסויים, אז שייעדכן רק 26 מתוך 100 משתמשים ובכל אחד מהם יהיה תא שגדול מהאחר ב1 בלבד לפי סדר העידכון, וכל זה בלי לולאה של php אלא בשאילתה אחת בלבד. (כי לולאה מאריכה את התהליך)

IgalSt 10-02-10 11:51

בלי לולאה בצד שרת אתה לא ממש יכול.
הפתרון השני יהיה פרוצדורה שעושה לולאה ב-DB.
בכל מקרה, באמצעות שאילתא אחת לא תוכל.

ואם אתה לא רוצה לרוץ על כל המשתמשים, כמובן בשאילתא הראשונה שממלאת את המערך שלך, אתה יכול להגדיר את מי אתה רוצה בדיוק..


כל הזמנים הם GMT +2. הזמן כעת הוא 08:14.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ