PDA

View Full Version : تعداد فیلدهای تکراری در یک جدول



sunboymn
پنج شنبه 01 مرداد 1394, 15:58 عصر
سلام
یه جدول توو mysql دارم بدین صورت


grade
field2
field1
id


3
a
a
1


3
b
a
2


4
c
c
3



به ازای فیلدهای یکسان 1 نمره و فیلدهای غیریکسان 2 نمره به فیلد grade اضافه میشه مثلا
آیدی 1 و 2، 3 امتیار گرفتن چون field1 در هردو یکسانه
ولی آیدی 3، 4 امتیاز گرفته چون فیلد یکسانی با دیگر سطرها نداره
کوئریش رو چجوری بنویسم؟
شما چه راه حلی پیشنهاد میدین؟

amg_123
جمعه 02 مرداد 1394, 12:18 عصر
سلام
سوالتون واقعا گنگه
البته من که چیزی نفهمیدم

Master_Power
جمعه 02 مرداد 1394, 21:14 عصر
واقعا سواتون را بد مطرح کردن
اصلا هیچ جوره نفهمیدم چی شد

sunboymn
شنبه 03 مرداد 1394, 21:43 عصر
سلام
سوالتون واقعا گنگه
البته من که چیزی نفهمیدم

ببینید توی عکس مشخص کردم. user1 و user2 هردو فیلد یک رو a حدس زدن پس 1 امتیاز میگیرن و user3 فیلد1 رو c تشخیص داده پس 2 امتیاز میگیره
برای فیلد2 هم همه کاربران حدس هاشون متفاوته پس برای همه 2 امتیاز منظور میشه یعنی درواقع به حدسهایی که شبیه هم هستند 1 امتیاز و اونایی که شبیه هم نیستند 2 امتیاز تعلق میگیره
در نتیجه:
کاربر1 => 1+2=3 امتیاز
کاربر2 => 1+2=3 امتیاز
کاربر3 => 2+2=4 امتیاز

amg_123
شنبه 03 مرداد 1394, 22:25 عصر
می خوایید یه چیز تو مایه ها نام و شهرت بنویسید؟؟!!
میشه موقع درج تو جدول

1. یه سلکت بگیریم ببینیم چنین فیلدایی تو جدول هست یا نه



$result1 = mysql_query("SELECT * FROM tbl1 where field1 = '{$newField1}'");
$result2 = mysql_query("SELECT * FROM tbl1 where field2 = '{$newField2}'");

2. خب حالا اگه هر کدوم نامساوی صفر بود یعنی تکراری وجو داره


$score = 0;
if(mysql_num_rows($result1) > 0)
$score += 1;
else
$score += 2;
if(mysql_num_rows($result2) > 0)
$score += 1;
else
$score += 2;


شاید به چندین روش بشه نوشتش مخصوصا چه بهتر که تبدیل به یه procedure بشه ولی همینم تقریبا خوبه چون دوتا سلکت بیشتر نداره, procedure یا خوندن کل رکوردا واسه چک کردن وقت گیر میشه
مغر من تا همین حد بیشتر یاری نمیکنه :لبخند:

sunboymn
یک شنبه 04 مرداد 1394, 00:18 صبح
ممنون از راهنماییت
راستش خودمم اولین راه حلی که به ذهنم رسید همین بود ولی راه حل بهینه ای نیست
تشکر از پاسخگویی