ფოტოს ავტორი: rHytHm123
ერთ-ერთი უსაყვარლესი კომპოზიცია, რომელიც რაღაც არარეალურს მაგონებს.. :tender:
რიჩარდ კლეიდერმანის Ballade Pour Adeline.
Software development, design & other personal stuff
ფოტოს ავტორი: rHytHm123
ერთ-ერთი უსაყვარლესი კომპოზიცია, რომელიც რაღაც არარეალურს მაგონებს.. :tender:
რიჩარდ კლეიდერმანის Ballade Pour Adeline.
მეთოდი 1:
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;
როგორც სტატიის ავტორი წერს, მეთოდის პრობლემა მისი შესრულების დროა. MySQL-ს ყველა ჩანაწერი დროებით ცხრილში გადააქვს, თითოეულს ანიჭებს რაღაც შემთხვევით ინდექსს სორტირებისთვის. შემდეგ შედეგებს ასორტირებს და აბრუნებს პირველ ჩანაწერს.
მეთოდი 2:
უდიდესი და უმცირესი id-ის გასაგებად MAX() და MIN() ფუნქციები გამოვიყენოთ.
$range_result = mysql_query( " SELECT MAX(`id`) AS max_id , MIN(`id`) AS min_id FROM `table` ");
$range_row = mysql_fetch_object( $range_result );
$random = mt_rand( $range_row->min_id , $range_row->max_id );
$result = mysql_query( " SELECT * FROM `table` WHERE `id` >= $random LIMIT 0,1 ");
მეთოდი 3:
LIMIT ორ არგუმენტს იღებს. მაგალითად LIMIT 5,10 დააბრუნებს ჩანაწერებს 6-დან 15-მდე. ათვლა 0-დან იწყება. პირველი არგუმენტი offset-ია (არ ვიცი როგორ ითარგმნება), ხოლო მეორე – offset-დან ათვლილი წამოსაღები ჩანაწერების მაქსიმალური რაოდენობა.
რომ გამოვთვალოთ offset პირველ ჩანაწერამდე – დავაგენერიროთ შემთხვევითი რიცხვი MySQL-ის RAND() ფუნქციის საშუალებით. შემდეგ მიღებული რიცხვი გადავამრავლოთ ცხრილში არსებულ ჩანაწერთა რაოდენობას (ამ რაოდენობას COUNT() ფუნქციის მივიღებთ). რადგან LIMIT მხოლოდ მთელ რიცხვებს იღებს არგუმენტებად, ეს ნამრავლი უნდა დავამრგვალოთ – გამოვიყენოთ FLOOR() ფუნქცია.
FLOOR() არითმეტიკული ფუნქციაა, რომელიც გამოთვლის უდიდეს მთელ რიცხვს გადაცემულ პარამეტრამდე. საბოლოოდ, კოდს ასეთი სახე ექნება:
$offset_result = mysql_query( " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `table` ");
$result = mysql_query( " SELECT * FROM `table` LIMIT $offset, 1 " );
მეთოდი 4:
SELECT * FROM `table` WHERE id >= (SELECT CEILING( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 1;
სტატიის ავტორმა მეთოდების სისწრაფეები შეადარა და სოფტის და ჰარდის სპეციპიკაციებს თუ არ ჩავუღრმავდებით, მიახლოებით ასეთი შედეგი მიიღება:
აკადემიური წლის განმავლობაში ყოველ ოთხშაბათს სტენფორდის უნივერსიტეტში The Entrepreneurial Thought Leaders ლექციათა სერია ტარდება. მათი პოდკასტები კი საიტზეა გამოქვეყნებული..
ამ ლექციების წასაკითხად სხვადასხვა ცნობილი ორგანიზაციების წარმომადგენლებს იწვევენ. მაგალითად, 2006 წლის შემდეგ სტუმრებს შორის იყვნენ შემდეგი ფირმების, სასწავლო დაწესებულებების და პროექტების წარმომადგენლები:Google, Mozilla, Yahoo!, Microsoft, Nokia, eBay, NVIDIA, Silicon Valley Bank, Google Analytics, InCube Labs, BitTorrent, Tesla Motors,Autodesk, Aruba Networks, LinkedIn, Facebook, Odeo, Harvard Business School, London Business School, PodShow, Glu MobileDNA Direct, Genomic Health, Wikia,Warner Music და სხვა.
პოდკასტები შეგიძლიათ ამ ლინკზე აირჩიოთ და პირდაპირ მოუსმინოთ ლექციას (რეგისტრაციისა და სხვა პროცედურების გარეშე)
ვიპოვე ახალი ’მყუდრო კუთხე’ და გადმოვსახლდი აქ 🙂
ბლოგი უფრო ავტორისთვის არსებობს ალბათ ვიდრე მკითხველისთვის.
თემაც არ შემირჩევია კონკრეტული. ის – რაც დროის რომელიღაც მომენტში იქნება ჩემთვის საინტერესო…
ზოგადად ალბათ ისევ პროგრამირებაზე დავა :)))))
პ.ს. არ მიყვარს ხოლმე პირველი პოსტის წერა…
![]() |
DntFearThReapr-ის ფოტო |