MySQL-এ RAND() দিয়ে র্যান্ডম কলাম তৈরি ও সাজানো
MySQL-এ সরাসরি ORDER BY RAND() দিয়ে র্যান্ডম সাজানো যায়, কিন্তু যদি র্যান্ডম ভ্যালু কলামও আউটপুটে দেখতে চান, তবে সাবকোয়ারি বা ডেরাইভড টেবিলে RAND() কলাম যোগ করে সেটি দিয়ে সাজাতে হয়।
উদাহরণ সহ ব্যাখ্যা
টেবিল তৈরি ও ডেটা:
mysql> CREATE TABLE DemoTable (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable(StudentName) VALUES
-> ('Larry'),('Sam'),('Mike'),('Carol'),('Robert'),('Chris');
বর্তমান ডেটা:
mysql> SELECT * FROM DemoTable;
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Larry | | 2 | Sam | | 3 | Mike | | 4 | Carol | | 5 | Robert | | 6 | Chris | +-----------+-------------+
র্যান্ডম ভ্যালু কলাম (RAND()+1) তৈরি করে ডিসেন্ডিং সাজানো:
mysql> SELECT * FROM (
-> SELECT StudentName, RAND() + 1 AS RandomRecord FROM DemoTable
-> ) tbl ORDER BY RandomRecord DESC;
ফলাফল (প্রতিবার ভিন্ন হবে):
+-------------+--------------------+ | StudentName | RandomRecord | +-------------+--------------------+ | Carol | 1.8973721451101566 | | Chris | 1.7821308670399065 | | Mike | 1.4640037673190271 | | Larry | 1.4134691557041081 | | Sam | 1.1408822407395414 | | Robert | 1.0948494543273461 | +-------------+--------------------+
নোট: RAND()+1 দিয়ে ১.০ থেকে ২.০ এর মধ্যে র্যান্ডম সংখ্যা। ORDER BY RAND() বড় টেবিলে ধীর হতে পারে।