ใช้ MD5(CONCAT(col1, col2, col3...)) สร้าง Hash รวมค่าทุกคอลัมน์ของแถว
ไวยากรณ์
SELECT MD5(CONCAT(col1, col2, col3, ...)) AS rowHash FROM yourTable;
ตัวอย่างการใช้งาน
สร้างตาราง getHashValueForEachRow:
mysql> CREATE TABLE getHashValueForEachRow (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(20),
-> Age INT,
-> Marks INT,
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล:
mysql> INSERT INTO getHashValueForEachRow(Name, Age, Marks) VALUES
-> ('Larry',24,89),('David',26,98),('Bob',21,67),('Sam',22,56),('Mike',25,80);
ข้อมูลทั้งหมด
+----+-------+------+-------+ | 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 Hash ทุกแถว
mysql> SELECT MD5(CONCAT(Id, Name, Age, Marks)) AS HashValueOfEachRow FROM getHashValueForEachRow;
ผลลัพธ์
+----------------------------------+ | HashValueOfEachRow | +----------------------------------+ | a5f6b8e1a701d467cf1b4d141027ca27 | | 6e649522c773b6a6672e625939eb4225 | | 8bd419e9b7e9e014a4dc0596d70e93c8 | | 504cf50194a2a6e3481dfa9b8568b9e6 | | 08716a8dad7105a00c49ea30d278b315 | +----------------------------------+
ประโยชน์: ตรวจสอบความสมบูรณ์ข้อมูล (Data Integrity), ตรวจจับการเปลี่ยนแปลงแถว, Sync ข้อมูลระหว่างระบบ
หมายเหตุ: MD5 ไม่เหมาะสำหรับความปลอดภัยทางเข้ารหัส ใช้ SHA2() แทนถ้าต้องการความปลอดภัยสูงกว่า