PDA

View Full Version : مشکل در بکارگیری if در مسئله



one hacker alone
یک شنبه 03 شهریور 1392, 01:51 صبح
با یاد خدا
با سلام
جدول t1 اسامی ادم هایی هست که در مسابقه شرکت میکنن
جدول t2 فقط اسامی افرادی هست که به اونها امتیاز داده میشه
حالا جدول t1 جدولی کامل هست اما t2 رکوردهاش که شامل id,goal هست فقط زمانی ایجاد میشن که بازدید کننده به افراد جدول اول امتیاز بده
حالا در حین امتیاز دهی دو حالت وجود داره
اینکه شما وقتی روی اسم یکی از افراد جدول 1 برای امتیاز دادن کلیک میکنید اون شخص قبلا بهش امتیاز دادن و یه رکورد در جدول دوم داره
یا اینکه اولین بار هست که این شخص بهش امتیاز داده میشه و باید رکوردی براش در جدول دوم ساخته بشه
پس من در اجرای کوئری دو حالت دارم یا باید اپدیت کنم
update level=level+1
یعنی امتیاز زیاد بشه یکی
یا اینکه باید سطری براش ایجاد کنم
insert into....
حالا میخواستم بدونم با دستور if چجوری میتونم اینارو تنظیم کنم که بگم اگه وجود داشت بیا اپدیت کن اگه نبود بیا ایجاد کن
if (select count(*) from tb1
....
?

majidrezaei2007
یک شنبه 03 شهریور 1392, 11:53 صبح
باید با تو یک پروسیجر این کد ها رو استفاده کنی

SET @goalCount = (SELECT COUNT(1) FROM T2 WHERE id = id_);
IF @goalCount > 0 THEN
UPDATE T2 SET level=level+1 WHERE id = id_;
ELSE
INSERT INTO T2 VALUES(id_,1);
END IF;