MySQL-এ RAND() ফাংশন ০ থেকে ১ এর মধ্যে র্যান্ডম ফ্লোটিং পয়েন্ট সংখ্যা জেনারেট করে। FLOOR() দিয়ে এটি ইন্টিজারে রূপান্তর করা যায়।
টেবিল তৈরি ও প্রাথমিক ডেটা
mysql> CREATE TABLE DemoTable (Value INT); Query OK, 0 rows affected (0.46 sec)
mysql> INSERT INTO DemoTable VALUES (10); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DemoTable VALUES (20); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO DemoTable VALUES (30); Query OK, 1 row affected (0.08 sec)
রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট:
+-------+ | Value | +-------+ | 10 | | 20 | | 30 | +-------+ 3 rows in set (0.00 sec)
র্যান্ডম সংখ্যা দিয়ে আপডেট (উদাহরণে @number ভেরিয়েবল অনুপস্থিত - ধরে নেওয়া হয় ১০)
mysql> UPDATE DemoTable SET Value = FLOOR(@number * RAND()) + 1; Query OK, 3 rows affected (0.17 sec) Rows matched: 3 Changed: 3 Warnings: 0
নোট: উদাহরণে @number ডিফাইন করা নেই। সঠিক সিনট্যাক্স (১ থেকে ১০০ পর্যন্ত র্যান্ডম):
UPDATE DemoTable SET Value = FLOOR(100 * RAND()) + 1;
আপডেট পর রেকর্ড (উদাহরণ ফলাফল)
mysql> SELECT * FROM DemoTable;
ফলাফল (প্রতিবার ভিন্ন):
+-------+ | Value | +-------+ | 2 | | 2 | | 1 | +-------+ 3 rows in set (0.00 sec)
র্যান্ডম ইনসার্ট (নতুন রো)
INSERT INTO DemoTable VALUES (FLOOR(100 * RAND()) + 1);
বিকল্প: RANDOM_BYTES (MySQL 8.0+)
SELECT CAST(RANDOM_BYTES(4) AS UNSIGNED) % 100 + 1;
সিকিউরিটি নোট
RAND() ক্রিপ্টোগ্রাফিক্যালি সিকিউর নয়। পাসওয়ার্ড, টোকেনের জন্য RANDOM_BYTES() বা অ্যাপ্লিকেশন লেভেলে CSPRNG ব্যবহার করুন।