RAND() ফাংশন দিয়ে র্যান্ডম সারি নির্বাচন
MySQL-এ কোনো টেবিল থেকে র্যান্ডমভাবে এক বা একাধিক সারি বেছে নেওয়ার জন্য ORDER BY RAND() ব্যবহার করা হয়। এটি প্রতিটি সারির জন্য একটি র্যান্ডম সংখ্যা জেনারেট করে এবং সেটি অনুযায়ী সাজায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(100),
ClientAge INT
);
mysql> INSERT INTO DemoTable(ClientName, ClientAge) VALUES
('Robert',45), ('Mike',55), ('Bob',42), ('Sam',47);
সব রেকর্ড
+----+------------+-----------+ | Id | ClientName | ClientAge | +----+------------+-----------+ | 1 | Robert | 45 | | 2 | Mike | 55 | | 3 | Bob | 42 | | 4 | Sam | 47 | +----+------------+-----------+
র্যান্ডম এক সারি বেছে নেওয়া
mysql> SELECT * FROM DemoTable ORDER BY RAND() LIMIT 1;
+----+------------+-----------+ | Id | ClientName | ClientAge | +----+------------+-----------+ | 3 | Bob | 42 | +----+------------+-----------+
নিউанс ও সতর্কতা
ORDER BY RAND()বড় টেবিলে ধীর গতিতে চলে কারণ পুরো টেবিল স্ক্যান করে।- বড় ডেটাসেটের জন্য অন্য পদ্ধতি (যেমন: PRIMARY KEY র্যান্ডম পিক করে WHERE IN) ভালো পারফরম্যান্স দেয়।
LIMIT 1বাদ দিলে সব সারি র্যান্ডম অর্ডারে আসবে।