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

MySQL-এ RAND() এবং LIMIT দিয়ে র‍্যান্ডম রো নির্বাচন করা

MySQL-এ টেবিল থেকে র‍্যান্ডমভাবে একটি রো বের করতে ORDER BY RAND() LIMIT 1 ব্যবহার করুন।

সিনট্যাক্স

SELECT * FROM yourTableName ORDER BY RAND() LIMIT 1;

উদাহরণ

টেবিল তৈরি করি:

mysql> create table generateRandomRow 
    -> ( 
    -> Id int NOT NULL AUTO_INCREMENT, 
    -> Name varchar(20), 
    -> Age int, 
    -> PRIMARY KEY(Id) 
    -> ); Query OK, 0 rows affected (1.66 sec)

রেকর্ড যোগ করি:

mysql> insert into generateRandomRow(Name,Age) values('John',23); 
mysql> insert into generateRandomRow(Name,Age) values('Larry',21); 
mysql> insert into generateRandomRow(Name,Age) values('David',21); 
mysql> insert into generateRandomRow(Name,Age) values('Carol',24); 
mysql> insert into generateRandomRow(Name,Age) values('Bob',27); 
mysql> insert into generateRandomRow(Name,Age) values('Mike',29); 
mysql> insert into generateRandomRow(Name,Age) values('Sam',26);

সকল রেকর্ড

mysql> select *from generateRandomRow;

আউটপুট

+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
| 1  | John  | 23   |
| 2  | Larry | 21   |
| 3  | David | 21   |
| 4  | Carol | 24   |
| 5  | Bob   | 27   |
| 6  | Mike  | 29   |
| 7  | Sam   | 26   |
+----+-------+------+

র‍্যান্ডম একটি রো বের করুন

mysql> select *from generateRandomRow ORDER BY RAND() LIMIT 1;

ফলাফল (উদাহরণ ১)

+----+------+------+
| Id | Name | Age  |
+----+------+------+
| 5  | Bob  | 27   |
+----+------+------+

আবার চালালে অন্য রো আসতে পারে (উদাহরণ ২)

+----+------+------+
| Id | Name | Age  |
+----+------+------+
| 6  | Mike | 29   |
+----+------+------+
সতর্কতা: বড় টেবিলে ORDER BY RAND() ধীর কাজ করতে পারে। লক্ষ লক্ষ রোর টেবিলে বিকল্প পদ্ধতি (যেমন: WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM table)))) ব্যবহার করুন।
  1. MySQL-এ RAND() ও LIMIT 1 দিয়ে র‍্যান্ডম রো সিলেক্ট

  2. MySQL-এ একাধিকবার অনুপস্থিত নামের র‍্যান্ডম একটি রো বের করা

  3. MySQL SELECT স্টেটমেন্টে রো ইন্ডেক্স (র‍্যাঙ্ক) জেনারেট করার পদ্ধতি

  4. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)