রো ইন্ডেক্স জেনারেট করতে ROW_NUMBER() ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করা যাক:
mysql> create table DemoTable ( Name varchar(40) ); Query OK, 0 rows affected (0.49 sec)
ইনসার্ট কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড যোগ করুন:
mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Robert'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Robert'); Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('Adam'); Query OK, 1 row affected (0.08 sec)
সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সব রেকর্ড দেখান:
mysql> select *from DemoTable;
এটি নিচের আউটপুট দেবে:
+--------+ | Name | +--------+ | Chris | | Chris | | Chris | | Robert | | Robert | | Adam | | Adam | | Adam | | Adam | +--------+ 9 rows in set (0.00 sec)
MySQL SELECT স্টেটমেন্টে রো ইন্ডেক্স জেনারেট করার কোয়েরি নিচে দেওয়া হলো। এখানে ডুপ্লিকেট নামের জন্য র্যাঙ্ক সেট করা হয়েছে:
mysql> select Name, row_number() over (partition by Name) as `Rank` from DemoTable;
এটি নিচের আউটপুট দেবে:
+--------+------+ | Name | Rank | +--------+------+ | Adam | 1 | | Adam | 2 | | Adam | 3 | | Adam | 4 | | Chris | 1 | | Chris | 2 | | Chris | 3 | | Robert | 1 | | Robert | 2 | +--------+------+ 9 rows in set (0.00 sec)