🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Mehrzad Tajkarimi
sql query replace
امیر صالحی حل شده توسط امیر صالحی

سلام خسته نیاشید 
من میخوام در جدول رابط از مقادیر مثلا ۵ تا ۳ شو جایگزین کنم 
در جدول  product_discounts آنهایی discount_id برابر با یک عددی هست رو بگیره 
و مثلا
 ۲ از ۵ تا رو حذف بکنه 
۳ تا مقدار هم اضافه بکنه 
۱ رو آپدیت بکنه 
 

باید حذف بکنم یک بار همه رو که برابر با مقدار  discount_id و بعد مجدد ایجاد کنم یا راه دیگه ای هم هست ؟
 

 

درود

واسه آپدیت کردن که باید کوئری update  بزنید اما برای اینکه مقادیر جدید درون یک جدولی که رابطه چند به چند داره، مثل همین دسته بندی انتخابی که شما دارید،‌ آیدی تمامی گزینه‌های انتخاب شده رو بگیرید و بعد یک کوئری بزنید که هر آیدی که سمت شما اومد و داخل جدول نبود، مقادیری که داخل جدول نیستند حذف بشه و آیدی هایی که سمت شما اومده insert بشه

 

کوئری شما تقریبا یه همچین چیزی میشه که ابتدا آیدی هایی که در بین آیدی‌های شما در request دارید نباشند حذف میشن 

delete from `table` WHERE `discount_id` = 1 and `aaa_id` NOT IN (1,2,3,4,6) 

و بعد مقادیر جدید که همون آیدی‌های جدید هستن insert میشن

INSERT INTO table(discount_id, aaa_id)
VALUES 
   (1,1),
   (1, 2),
    ...
   (1, 10);
بهترین پاسخ
امیر صالحی ۱۳ مرداد ۱۴۰۰، ۱۸:۰۵