Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL รับค่าแฮชสำหรับแต่ละแถว?


รับค่าแฮชของแต่ละแถวโดยใช้ฟังก์ชัน MD5() จาก MySQL ไวยากรณ์มีดังนี้ −

เลือก MD5(CONCAT(yourColumnName1,yourColumnName2,yourColumnName3,.......N)) เป็น anyVariableName จาก yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง getHashValueForEachRow -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> Age int, -> Marks int, -> PRIMARY KEY(Id) -> );Query OK , ได้รับผลกระทบ 0 แถว (1.25 วินาที)

แทรกระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน getHashValueForEachRow(Name,Age,Marks) values('Larry',24,89);Query OK, 1 แถวได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงใน getHashValueForEachRow(Name,Age,Marks) ค่า ( 'David',26,98); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า getHashValueForEachRow (ชื่ออายุเครื่องหมาย) ('Bob',21,67); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20) sec)mysql> แทรกลงใน getHashValueForEachRow(Name,Age,Marks) values('Sam',22,56);Query OK, 1 แถวได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงใน getHashValueForEachRow(Name,Age,Marks) ค่า (' Mike',25,80);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.72 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก getHashValueForEachRow;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+-------+------+-------+| รหัส | ชื่อ | อายุ | เครื่องหมาย |+----+-------+------+-------+| 1 | แลร์รี่ | 24 | 89 || 2 | เดวิด | 26 | 98 || 3 | บ๊อบ | 21 | 67 || 4 | แซม | 22 | 56 || 5 | ไมค์ 25 | 80 | |+----+-------+------+-------+5 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อรับค่าแฮชของแต่ละแถว -

mysql> เลือก md5(concat(Id,Name,Age,Marks)) เป็น HashValueOfEachRow จาก getHashValueForEachRow;

นี่คือผลลัพธ์ -

+------------------------------------------------+| HashValueOfEachRow |+---------------------------------+| a5f6b8e1a701d467cf1b4d141027ca27 || 6e649522c773b6a6672e625939eb4225 || 8bd419e9b7e9e014a4dc0596d70e93c8 || 504cf50194a2a6e3481dfa9b8568b9e6 || 08716a8dad7105a00c49ea30d278b315 |+---------------------------------+5 แถวในชุด (0.00 วินาที)