Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ubah string md5 yang disimpan menjadi nilai desimal di MySQL

conv() terbatas pada bilangan bulat 64 bit. Anda dapat mengonversi bagian tinggi dan rendah menjadi desimal lalu menjumlahkannya:

> 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

Dimana 18446744073709551616 =2^64. Jadi dalam kasus Anda:

> 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. Apa string koneksi driver MySQL JDBC?

  2. Symfony 3 - Pengecualian terjadi pada driver:tidak dapat menemukan driver

  3. Apa arti flag kolom di MySQL Workbench?

  4. URL JDBC untuk konfigurasi MySQL menggunakan pengkodean karakter utf8

  5. Kunci Asing MySQL Saat Dihapus