MySQL-এ একটি টেবিলের প্রতিটি রোর সব কলামের মান মিলিয়ে একটি অনন্য হ্যাশ মান বের করতে MD5(CONCAT(...)) ব্যবহার করুন।
সিনট্যাক্স
SELECT MD5(CONCAT(yourColumnName1, yourColumnName2, yourColumnName3, ...)) AS anyVariableName FROM yourTableName;
উদাহরণ
টেবিল তৈরি করি:
mysql> create table getHashValueForEachRow
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(20),
-> Age int,
-> Marks int,
-> PRIMARY KEY(Id)
-> ); Query OK, 0 rows affected (1.25 sec)
রেকর্ড ইনসার্ট:
mysql> insert into getHashValueForEachRow(Name,Age,Marks) values('Larry',24,89);
mysql> insert into getHashValueForEachRow(Name,Age,Marks) values('David',26,98);
mysql> insert into getHashValueForEachRow(Name,Age,Marks) values('Bob',21,67);
mysql> insert into getHashValueForEachRow(Name,Age,Marks) values('Sam',22,56);
mysql> insert into getHashValueForEachRow(Name,Age,Marks) values('Mike',25,80);
সকল রেকর্ড
mysql> select *from getHashValueForEachRow;
আউটপুট
+----+-------+------+-------+ | Id | Name | Age | Marks | +----+-------+------+-------+ | 1 | Larry | 24 | 89 | | 2 | David | 26 | 98 | | 3 | Bob | 21 | 67 | | 4 | Sam | 22 | 56 | | 5 | Mike | 25 | 80 | +----+-------+------+-------+
প্রতি রোর MD5 হ্যাশ বের করুন
mysql> SELECT MD5(CONCAT(Id, Name, Age, Marks)) AS HashValueOfEachRow FROM getHashValueForEachRow;
ফলাফল
+----------------------------------+ | HashValueOfEachRow | +----------------------------------+ | a5f6b8e1a701d467cf1b4d141027ca27 | | 6e649522c773b6a6672e625939eb4225 | | 8bd419e9b7e9e014a4dc0596d70e93c8 | | 504cf50194a2a6e3481dfa9b8568b9e6 | | 08716a8dad7105a00c49ea30d278b315 | +----------------------------------+
ব্যবহার: ডেটা অখণ্ডতা যাচাই, রো-লেভেল চেঞ্জ ডিটেকশন, বা ক্যাশ কী তৈরিতে এই হ্যাশ মান ব্যবহার করা যায়। নিরাপত্তা-সংবেদনশীল কাজে SHA2() ব্যবহার করুন।