مشکل در Replace کردن در دیتابیس
با سلام خدمت دوستان
من یه مشکلی تو Replace کردن برام به وجود اومده که امیدوارم بتونید منو راهنمایی کنیم
مشکل من اینه که میخوام یکسری اعداد رو تو دیتابیسم رو عوض کنم و جاش عدد دیگه بزارم
مثلا میخوام تو تیبل news اعداد شماره 2 که درون فیلد topic ذخیره شده رو به عدد 13 تبدیل کنم
من با استفاده از این کد این کار رو انجام میدم
mysql_query("update news set topic = replace(topic, '$old_num', '$new_num')");
حالا مشکل اینجاست که شما به عنوان مثال این اعداد رو در نظر بگیرید
2,3,4,5,6,7,8,9
من میخوام به جای این اعداد به ترتیب از راست به چپ اینا رو بزارم
12,23,54,45,86,17,38,19
ابتدا عدد 12 را جایگزین عدد 2 میکنیم
که بعد از اجرای دستور و جایگزینی اعداد داخل جدول به این صورت در میاد
12,3,4,5,6,7,8,9
حالا باید عدد دوم یعنی 23 رو جایگزین 3 کنیم که به این صورت میشه
12,23,4,5,6,7,8,9
حالا نوبت عدد سوم هست یعنی 54 باید جایگزین 4 بشه که حاصل میشه
12,23,54,5,6,7,8,9
و حالا میرسیم به نقطه کور ماجرا که مشکل من اینجاست
حالا اگر بخوام عدد بعدی یعنی 45 رو جایگزین عدد 5 کنم هر چی عدد 5 باشه میگیره به 45 تبدیل میکنه یعنی به اینصورت میشه
12,23,454,45,6,7,8,9
همونطور که دیدید هر چی 5 بود به 45 تبدیل کرد یعنی عدد 54 که توش 5 داشت رو به 454 تبدیل کرد
من چیکار کنم که این مشکل پیش نیاد ؟
آیا راهی هست که عدادی رو که جایگزین کردم در جایگزینهای بعدی نباشه ؟
ممنون میشم دوستان راهنمایی کنند
با تشکر
نقل قول: مشکل در Replace کردن در دیتابیس
میشه اول بگید قصدتون از این کارا چیه ؟ شاید راه حل بهتری اراده شد واسه اینکارتون :لبخندساده:
نقل قول: مشکل در Replace کردن در دیتابیس
خوب میخوام id موضوعات مطالب سایتم رو تغییر بدم
یعنی من موضوعات سایتم رو عوض کردم و یه چیزایی اضافه و کم کردم و باید id های جدید جایگزین id های قدیمی بشه :قلب:
نقل قول: مشکل در Replace کردن در دیتابیس
پس شما فرضا دوتا لیست دارید که یکی id های جدید هستش و یکی id های قدیمی مثلا :
1,2,3,4,5 قدیمی
6,7,8,9,10 جدید
حالا میخوایین
6 بشینه جای 1
7 بشینه جای 2
و . . .
و دقیقا id جدید متناظر با هر id قدیمی رو دارید
درسته ؟
نقل قول: مشکل در Replace کردن در دیتابیس
بله درسته
من دو تا لیست دارم از آی دی های قدیمی و آی دی های جدید که یکسری اعداد مشابه این وسط هستند که مشابه اند با هم دیگه و کار رو خراب میکنند
مانند توضیحی که بالا دادم
نقل قول: مشکل در Replace کردن در دیتابیس
شما به ازای هر id میتونی یه update بنویسی توی یه for . نظرت چیه ؟ حالا اگه id موجود بود واسه اینکه تکراری نشه یکی به id اضافه کن و اینو تو یه تابع بازگشتی بنویس که تا وقتی که id خالی پیدا نشد از تابع نیاد بیرون.