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

MySQL-এ RAND() ও FLOOR() ব্যবহার করে টেবিলে র‍্যান্ডম সংখ্যা আপডেট করা

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 ব্যবহার করুন।

  1. Java-এ PreparedStatement ব্যবহার করে MySQL টেবিলে রেকর্ড ইনসার্ট করা

  2. MySQL-এ RAND() এবং LIMIT দিয়ে র‍্যান্ডম রো বের করা

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

  4. MySQL-এ AUTO_INCREMENT টেবিলে INSERT INTO SELECT ব্যবহার করা