কম্পিউটার টিউটোরিয়াল

MySQL-এ শেষ ২০টি রেকর্ড থেকে ৫টি র‍্যান্ডম রেকর্ড বের করা

MySQL-এ সাবকোয়েরি এবং ORDER BY RAND() ব্যবহার করে শেষ Nটি রেকর্ড থেকে র‍্যান্ডম রেকর্ড বের করা যায়।

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable773 (StudentId int); 
Query OK, 0 rows affected (0.59 sec)

২৩টি রেকর্ড ইনসার্ট করা হয়েছে (১০০ থেকে ৯৭ পর্যন্ত):

mysql> insert into DemoTable773 values(100); ... mysql> insert into DemoTable773 values(97); 
Query OK, 1 row affected each

সকল রেকর্ড দেখানো

mysql> select * from DemoTable773;
+-----------+
| StudentId |
+-----------+
| 100       |
| 200       |
| 300       |
| 400       |
| 500       |
| 1         |
| 2         |
| ...       |
| 97        |
+-----------+
23 rows in set (0.00 sec)

শেষ ২০টি থেকে ৫টি র‍্যান্ডম রেকর্ড বের করা

mysql> select * from ( 
    select * from DemoTable773 order by StudentId desc limit 20 
) AS RANDOM_OUTPUT order by rand() limit 5;
+-----------+
| StudentId |
+-----------+
| 95        |
| 4         |
| 10        |
| 7         |
| 300       |
+-----------+
5 rows in set (0.51 sec)

ব্যাখ্যা

  1. order by StudentId desc limit 20 - последним ২০টি রেকর্ড নেয় (ID অনুযায়ী ডেসেন্ডিং)
  2. order by rand() - সাবকোয়েরির ফলাফলকে র‍্যান্ডমাইজ করে
  3. limit 5 - 그중 ৫টি নেয়

দ্রষ্টব্য: বড় টেবিলে ORDER BY RAND() ধীর হতে পারে। সেক্ষেত্রে অন্যান্য পদ্ধতি (যেমন PRIMARY KEY র‍্যান্ডমাইজেশন) ভালো কাজ করে।

  1. MySQL-এ রেকর্ড থেকে সর্বোচ্চ মান বের করা

  2. MySQL-এ FORMAT() ব্যবহার করে কaarেন্সি রেকর্ড ফরম্যাট করা

  3. MySQL에서 특정 월 범위(예: 작년 7월~올해 7월) 데이터 조회하기

  4. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা