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

แปลงสตริง MD5 ที่เก็บไว้เป็นค่าทศนิยมใน MySQL หรือไม่


คุณสามารถใช้ฟังก์ชัน conv() ร่วมกับ cast() เพื่อเปลี่ยนจากเลขฐานสิบหกเป็นค่าทศนิยมได้

หมายเหตุ − MD5 อยู่ในเลขฐานสิบหก

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable (ข้อความรหัสผ่าน) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.60 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ("a5391e96f8d48a62e8c85381df108e98"); สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงในค่า DemoTable ("ea7a32d2dc5bb793af262dcb6ea1a54d"); (0. Query OK18 ได้รับผลกระทบ 1 แถว)> 

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+------------------------------------------------+| รหัสผ่าน |+---------------------------------+| a5391e96f8d48a62e8c85381df108e98 || ea7a32d2dc5bb793af262dcb6ea1a54d |+---------------------------------+2 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแปลงสตริง md5 ที่เก็บไว้เป็นค่าทศนิยมใน MySQL -

mysql> เลือก cast(conv(substr(Password, 1, 16), 16, 10) เป็น decimal(65))*18446744073709551616+ cast(constr(รหัสผ่าน, 17, 16), 16, 10) เป็น ทศนิยม(65)) AS DecimalValuefrom DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------------------------------+| DecimalValue |+------------------------------------------------------+| 2196192006588969319114298942978912194200 || 311673842057003455136843080376797734221 |+---------------------------------------------------+2 แถวในชุด ( 0.00 วินาที)