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

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


টেবিল তৈরি এবং ৫৮টি রো ইনসার্ট

mysql> create table DemoTable1853 ( UserId int NOT NULL AUTO_INCREMENT, PRIMARY KEY(UserId) ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1853 values(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); Query OK, 58 rows affected (0.00 sec) Records: 58 Duplicates: 0 Warnings: 0

সব রেকর্ড (১ থেকে ৫৮)

mysql> select * from DemoTable1853;

সাবকুয়েরি দিয়ে শেষ ৫০টি থেকে ৫টি র‍্যান্ডম

ইননার কুয়েরি ORDER BY UserId DESC LIMIT 50 দিয়ে শেষ ৫০টি নেয়, আউটার কুয়েরি ORDER BY RAND() LIMIT 5 দিয়ে ৫টি র‍্যান্ডম বের করে:

mysql> select tbl.* from (select tbl1.* from DemoTable1853 tbl1 order by UserId DESC LIMIT 50) tbl order by rand() limit 5;
+--------+
| UserId |
+--------+
|     19 |
|     24 |
|     43 |
|     36 |
|     48 |
+--------+
5 rows in set (0.00 sec)

দ্রষ্টব্য: বড় টেবিলে ORDER BY RAND() ধীর। বিকল্প: অ্যাপ্লিকেশন লেভেলে র‍্যান্ডম আইডি জেনারেট করে WHERE IN (...) ব্যবহার করুন।

  1. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?

  2. MySQL-এ ORDER BY DESC LIMIT 30 ব্যবহার করে শেষ ৩০টি রো পান

  3. MySQL-এ সাবকোয়েরি ব্যবহার করে শেষ ৩টি রো এসেন্ডিং অর্ডারে পান

  4. MySQL-এ নির্দিষ্ট সারি মাত্র ডিলিট করার পদ্ধতি (NOT IN ব্যবহার)