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)))) ব্যবহার করুন।