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

MySQL ডাটাবেস থেকে র‍্যান্ডম রেকর্ড বেছে নেওয়া (ORDER BY RAND)


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 বাদ দিলে সব সারি র‍্যান্ডম অর্ডারে আসবে।
  1. কমান্ড লাইন থেকে MySQL ডেটাবেসে কানেক্ট করা

  2. MySQL-এ ডেটাবেস সিলেক্ট করা (USE COMMAND)

  3. MySQL ডাটাবেস থেকে কনস্ট্রেইন্টের তালিকা পান

  4. MySQL-এ টার্মিনাল থেকে SQL ফাইল রান করা (mysql কমান্ড)