Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển đổi chuỗi md5 được lưu trữ thành giá trị thập phân trong MySQL

chuyển đổi () được giới hạn ở các số nguyên 64 bit. Bạn có thể chuyển đổi phần cao và phần thấp thành số thập phân, sau đó cộng chúng lại với nhau:

> select cast(conv(substr("000002dcc38af6f209e91518db3e79d3", 1, 16), 16, 10) as
              decimal(65))*18446744073709551616 +
         cast(conv(substr("000002dcc38af6f209e91518db3e79d3", 17, 16), 16, 10) as
              decimal(65));
58055532535286745202684464101843

Trong đó 18446744073709551616 =2 ^ 64. Vì vậy, trong trường hợp của bạn:

> select cast(conv(substr(md5_key, 1, 16), 16, 10) as 
              decimal(65))*18446744073709551616 +
         cast(conv(substr(md5_key, 17, 16), 16, 10) as
              decimal(65))
         from bigtable limit 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ SECOND () - MySQL

  2. lỗi cú pháp:'dấu phân cách' không phải là đầu vào hợp lệ ở đây

  3. Chuyển đổi bảng từ MyISAM sang INNODB

  4. Tôi có thể thay đổi ft_min_word_len trên chia sẻ lưu trữ không?

  5. MySQL:Làm thế nào để thêm một cột nếu nó chưa tồn tại?