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

MySQL-এ সাবকোয়ারী দিয়ে ২০টি সাম্প্রতিক রো থেকে ৫টি র‍্যান্ডম রো বের করা

র‍্যান্ডমের জন্য RAND() মেথড এবং রো সীমাবদ্ধ করতে LIMIT() মেথড ব্যবহার করুন।

প্রথমে একটি টেবিল তৈরি করা যাক:

mysql> create table DemoTable 
-> ( 
-> ShippingDate datetime 
-> ); Query OK, 0 rows affected (0.51 sec)

টেবিলে ২৯টি রেকর্ড ইনসার্ট করুন (ভিন্ন তারিখ):

mysql> insert into DemoTable values('2019-01-01'); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-01-03'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-01-05'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-01-07'); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-02-02'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-02-04'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-02-12'); Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values('2019-02-24'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-02-25'); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-03-10'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-03-11'); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-03-12'); Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('2019-03-14'); Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-03-16'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-03-18'); Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('2019-03-20'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-03-25'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-03-28'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-03-29'); Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('2019-04-03'); Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('2019-04-03'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-04-04'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-04-06'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-04-09'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-05-01'); Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values('2019-05-13'); Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values('2019-05-15'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2019-05-16'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-05-18'); Query OK, 1 row affected (0.20 sec)

টেবিলের সকল রেকর্ড দেখান:

mysql> select *from DemoTable;

আউটপুট

এটি ২৯টি রো দেখাবে (সংক্ষেপে):

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-01-01 00:00:00 |
| 2019-01-03 00:00:00 |
| ...                 |
| 2019-05-18 00:00:00 |
+---------------------+
29 rows in set (0.00 sec)

২০টি সাম্প্রতিক রো থেকে ৫টি র‍্যান্ডম রো বের করার কোয়ারী (সাবকোয়ারী + RAND + LIMIT):

mysql> select tbl1.* from (select *from DemoTable ORDER BY ShippingDate DESC LIMIT 20 ) as tbl1 
-> ORDER BY RAND() LIMIT 5;

আউটপুট

এটি নিচের আউটপুট দেবে (র‍্যান্ডমলি ৫টি সাম্প্রতিক তারিখ):

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-03-14 00:00:00 |
| 2019-05-13 00:00:00 |
| 2019-03-25 00:00:00 |
| 2019-05-16 00:00:00 |
| 2019-03-10 00:00:00 |
+---------------------+
5 rows in set (0.04 sec)
  1. MySQL-এ তারিখের পরিসীমা থেকে দিনগুলো কীভাবে জেনারেট করবেন?

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

  3. MySQL에서 현재 날짜 기준 1일 이상 미래/과거 데이터 조회 (INTERVAL 활용)

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