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()ঠিক আছে