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

MySQL-এ RAND() ও LIMIT 1 দিয়ে র‍্যান্ডম রো সিলেক্ট

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

সিনট্যাক্স

SELECT * FROM আপনার_টেবিল ORDER BY RAND() LIMIT 1;

উদাহরণ

mysql> CREATE TABLE DemoTable735 (Amount INT);
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO DemoTable735 VALUES
(984474734), (489393323), (23432333), (8949933);
Query OK, 4 rows affected

সব রেকর্ড

mysql> SELECT * FROM DemoTable735;
+-----------+
| Amount    |
+-----------+
| 984474734 |
| 489393323 |
| 23432333  |
| 8949933   |
+-----------+

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

mysql> SELECT * FROM DemoTable735 ORDER BY RAND() LIMIT 1;
+-----------+
| Amount    |
+-----------+
| 489393323 |  <-- প্রতিবার ভিন্ন হবে
+-----------+

পারফরম্যান্স সতর্কতা

  • ORDER BY RAND() → ফুল টেবিল স্ক্যান + ফাইলসর্ট (বড় টেবিলে ধীর)
  • বড় টেবিলের জন্য ভালো পদ্ধতি:
    • SELECT * FROM t WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM t))) ORDER BY id LIMIT 1;
    • অথবা অ্যাপ্লিকেশন লেভেলে র‍্যান্ডম আইডি জেনারেট করে WHERE id = ?
  • ছোট টেবিল (< 10K রো) এর জন্য RAND() ঠিক আছে
  1. MySQL-এ RAND() এবং LIMIT দিয়ে র‍্যান্ডম রো বের করা

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

  3. MySQL-এ WHERE ক্লজে তারিখ বিয়োগ করে রো সিলেক্ট করা

  4. MySQL-এ LIMIT ব্যবহার করে পেজিনেশন (পরের সারি নির্বাচন)