sql >> データベース >  >> RDS >> Mysql

保存されたmd5文字列をMySQLで10進値に変換します

    conv()は64ビット整数に制限されています。上位部分と下位部分を小数に変換してから、それらを合計することができます:

    > 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
    

    ここで、18446744073709551616 =2^64です。だからあなたの場合:

    > 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. Oracleでの時間のない日付タイプ

    2. MySQLでJoinを使用して削除

    3. Mysqlの結果はPHPになります-配列またはオブジェクト?

    4. MariaDBでのDATE_ADD()のしくみ