ঠিক আছে, আমি এটিকে মোকাবিলা করব: আমি ডাটাবেসে থাকা থেকে আরও ভাল কোডার, এবং আমি ভাবছি যে এসকিউএল কোয়েরি বনামে "সাধারণ" গণনা করার বিষয়ে "সেরা অনুশীলনগুলি" সম্পর্কে চিন্তাভাবনা কোথায় রয়েছে? কোড যেমন এই মাইএসকিউএল উদাহরণ (আমি এটি লিখিনি, আমাকে কেবল এটি বজায় রাখতে হবে!) - এটি ব্যবহারকারীর নাম এবং শেষ ইভেন্ট হিসাবে ব্যবহারকারীদের বয়স ফিরিয়ে দেয়।
SELECT u.username as user,
IF ((DAY(max(e.date)) - DAY(u.DOB)) < 0 ,
TRUNCATE(((((YEAR(max(e.date))*12)+MONTH(max(e.date)))
-((YEAR(u.DOB)*12)+MONTH(u.DOB)))-1)/12, 0),
TRUNCATE((((YEAR(max(e.date))*12)+MONTH(max(e.date))) -
((YEAR(u.DOB)*12)+MONTH(u.DOB)))/12, 0)) AS age
FROM users as u
JOIN events as e ON u.id = e.uid
...
কোডটিতে "ভারী" উত্তোলন করার সাথে তুলনা করুন:
প্রশ্ন:
SELECT u.username, u.DOB as dob, e.event_date as edate
FROM users as u
JOIN events as e ON u.id = e.uid
কোড:
function ageAsOfDate($birth, $aod)
{ //expects dates in mysql Y-m-d format...
list($by,$bm,$bd) = explode('-',$birth);
list($ay,$am,$ad) = explode('-',$aod);
//Insert Calculations here
...
return $Dy; //Difference in years
}
echo "Hey! ". $row['user'] ." was ". ageAsOfDate($row['dob'], $row['edate']) . " when we last saw him.";
আমি খুব সহজ একটি সাধারণ ক্ষেত্রে এটি খুব পার্থক্য করতে হবে না যথেষ্ট নিশ্চিত (যখন আমি প্রথম মত জিজ্ঞাসা পরিবর্তন করতে হবে ভয়াবহতা বোধের ছাড়া অন্য), কিন্তু আমি মনে করি এটি এটি পরিষ্কার করে তোলে আমি কি ' আমি খুঁজছি
ধন্যবাদ!