PDA

View Full Version : select از بعضی از سطرهای یک جدول و اعمال تغییرات و سپس درج دوباره در دیتابیس



b.paseban
چهارشنبه 22 آذر 1391, 04:05 صبح
سلام به همه دوستان.
من میخوام از یه جدول یه select بگیرم و بعد از اعمال تغییرات رو برخی از سطرهای اون , دوباره اون رو داخل دیتابیس درج کنم.
جدول من چند تا سطر داره به اسمهای :

ID_ImgPhoto(PK),IDPhoto(FK),Title,Small,Larg,Added Date,AddedIp,Status.
که من میخوام با دادن مقدار IDPhoto که یک FK از یه جدول دیگه هست سطرهایی که با IDPhoto همسان هستند رو بخونم بعد از اعمال یه سری تغییرات (تو مثال پائین میزارم) اون سطرهای تغییر یافته رو دوباره داخل دیتابیس درج کنم.
مثال:




/*OLD DATA*/
ID_ImgPhoto IDPhoto Small Larg
1 1 OLD/1S.jpg OLD/1L.jpg
2 1 OLD/2S.jpg OLD/2L.jpg
3 1 OLD/3S.jpg OLD/3L.jpg
4 2 Oldsmall/1S.jpg OldLarg/1L.jpg
5 2 Oldsmall/1S.jpg OldLarg/1L.jpg
5 2 Oldsmall/1S.jpg OldLarg/1L.jpg
5 2 Oldsmall/1S.jpg OldLarg/1L.jpg
__________________________________________________ __________________
/*NEW DATA Afetr Select And Chnage Rows Value*/
ID_ImgPhoto IDPhoto Small Larg
1 1 NEW/1S.jpg NEW/1L.jpg
2 1 NEW/2S.jpg NEW/2L.jpg
3 1 NEW/3S.jpg NEW/3L.jpg
4 2 Oldsmall-2/1S.jpg OldLarg-2/1L.jpg
5 2 Oldsmall-2/1S.jpg OldLarg-2/1L.jpg
5 2 Oldsmall-2/1S.jpg OldLarg-2/1L.jpg
5 2 Oldsmall-2/1S.jpg OldLarg-2/1L.jpg


توی مثال بالا من میخوام مقدار OLD رو از سطرهایی که IDPhoto=1 به مقدار NEW تغییر بدم.حالا این سطرها تعدادشون متفاوته و همیشه مقدار ثابت ندارن.
یه چیز دیگه این هم که یادم رفت بگم اینه که اون مقداری که تغییر میکنه مقدار یکی از سطرها(به اسم Title) یک جدول دیگه که IDPhoto در اون به عنوان PK درنظر گرفته شده هست.
من از این مقدار (Title) برای ایجاد یک فولدر (اسم فولدر)برای قراردادن عکس های ذخیره شده استفاده می کنم که کاربر میتونه این فلدر رو تغییر نام بده که همین تغییر نام وادار میکنه مارو که مسیر عکسهای ذخیره شده در این فلدر رو تغییر بدیم(یعنی همان اسم جدید فلدر یا همون Title)
ممنون میشم راهنمایی کنید.

b.paseban
چهارشنبه 22 آذر 1391, 04:52 صبح
بعد از تغییر نام جدید از این کد استفاده کردم جواب هم داد.


UPDATE yourtable set small=replace(small,'OLD/','NEW/'),larg=replace(larg,'OLD/','NEW/')