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

MySQL-এ সিরিয়াল নম্বর হিসেবে সারি গণনা করার নতুন কলাম যোগ করা

সিরিয়াল নম্বর হিসেবে সারি গণনা করার নতুন কলাম যোগ করতে সিলেক্ট স্টেটমেন্টে গ্লোবাল ভেরিয়েবল ব্যবহার করা যায়।

একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:

mysql> create table addColumnToCountAsSerialNumber  
    -> (  
    -> Id int,  
    -> Name varchar(20),  
    -> Age int,  
    -> Salary int  
    -> ); Query OK, 0 rows affected (0.80 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:

mysql> insert into addColumnToCountAsSerialNumber values(10,'John',23,8576); Query OK, 1 row affected (0.10 sec) mysql> insert into addColumnToCountAsSerialNumber values(12,'Carol',21,4686); Query OK, 1 row affected (0.14 sec) mysql> insert into addColumnToCountAsSerialNumber values(9,'Mike',22,38585); Query OK, 1 row affected (0.11 sec) mysql> insert into addColumnToCountAsSerialNumber values(15,'Sam',25,38586); Query OK, 1 row affected (0.16 sec) mysql> insert into addColumnToCountAsSerialNumber values(20,'Bob',26,43544); Query OK, 1 row affected (0.17 sec) mysql> insert into addColumnToCountAsSerialNumber values(39,'Larry',29,485886); Query OK, 1 row affected (0.16 sec)

সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:

mysql> select *from addColumnToCountAsSerialNumber ;

আউটপুট নিচে দেওয়া হলো:

+------+-------+------+--------+ | Id  | Name  | Age  | Salary | +------+-------+------+--------+ |  10 | John  |  23 |  8576 | |  12 | Carol |  21 |  4686 | |  9  | Mike  |  22 | 38585 | |  15 | Sam   |  25 | 38586 | |  20 | Bob   |  26 | 43544 | |  39 | Larry |  29 | 485886 | +------+-------+------+--------+ 6 rows in set (0.00 sec)

প্রতিটি সারিকে সিরিয়াল নম্বর হিসেবে গণনা করার কোয়েরি নিচে দেওয়া হলো:

mysql> select @globalVar:=@globalVar+1 RowCount,tblColumns.*   
    -> from (select @globalVar:=0) initializeGlobalVariable,addColumnToCountAsSerialNumber tblColumns;

RowCount নামে নতুন কলামে গণনা দেখানো আউটপুট নিচে দেওয়া হলো:

+----------+------+-------+------+--------+ | RowCount | Id  | Name  | Age  | Salary | +----------+------+-------+------+--------+ |       1 |  10 | John  |  23 |  8576 | |       2 |  12 | Carol |  21 |  4686 | |       3 |  9  | Mike  |  22 | 38585 | |       4 |  15 | Sam   |  25 | 38586 | |       5 |  20 | Bob   |  26 | 43544 | |       6 |  39 | Larry |  29 | 485886 | +----------+------+-------+------+--------+ 6 rows in set (0.06 sec)

ব্যাখ্যা: (select @globalVar:=0) initializeGlobalVariable সাবকোয়েরিটি ভেরিয়েবলটি ০ দিয়ে আরম্ভ করে। তারপর মূল টেবিলের সাথে ক্রস জয়েন করে প্রতিটি সারির জন্য @globalVar:=@globalVar+1 ইনক্রিমেন্ট করে সিরিয়াল নম্বর তৈরি করে। এটি MySQL-এ রো নম্বর জেনারেট করার একটি ক্লাসিক পদ্ধতি। MySQL 8.0+ এ ROW_NUMBER() OVER () উইন্ডো ফাংশন ব্যবহার করে আরও সহজে করা যায়।

  1. MySQL-এ কলামে নির্দিষ্ট শব্দের повторাবৃত্তির সংখ্যা জানা

  2. MySQL কোয়েরি: শেষ কোয়েরিতে সারির সংখ্যা জানার পদ্ধতি

  3. MySQL-এ SELECT কোয়েরিতে রো নাম্বার (Row Count) যোগ করা ROW_NUMBER() দিয়ে

  4. MySQL-এ DATE_ADD দিয়ে ৪৫ দিন যোগ করে নতুন কলামে দেখানো