sql >> Database teknologi >  >> RDS >> Mysql

Konverter en lagret md5-streng til en decimalværdi i MySQL

conv() er begrænset til 64 bit heltal. Du kan konvertere den høje og lave del til decimal og derefter lægge dem sammen:

> 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

Hvor 18446744073709551616 =2^64. Så i dit tilfælde:

> 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. Ydelsesrelaterede rettelser til SQL Server 2012

  2. Kom godt i gang med Django-kanaler

  3. Vælg de første 10 forskellige rækker i mysql

  4. SYSDATETIME() Eksempler i SQL Server (T-SQL)