Konvertieren Sie eine gespeicherte md5-string in einen decimal-Wert in MySQL

Ich habe eine sehr große Tabelle in MySQL. Ich bin mit einem CHAR(32) das Feld enthält eine MD5 als string natürlich. Ich laufen in ein Problem, wo ich konvertieren muss dies ein decimal-Wert mit Hilfe von MySQL. Eine Dritte Partei-tool läuft die Abfrage, damit das schreiben von code, dies zu tun ist nicht wirklich eine option.

MySQL unterstützt die Speicherung hex-Werte nativ und konvertiert Sie zu zahlen. Aber es wird aufgehängt Umwandlung aus einem string. Hier ist, was ich bisher ausprobiert habe (md5_key ist der name meiner Spalte)

Zuerst habe ich einfach versucht, die UNHEX Funktion sein, aber das gibt einen string zurück, so gab es mir gooblygoop. Ich werde dies hier nicht unterbringen. Danach habe ich versucht die CAST-Funktion

SELECT CAST( CONCAT('0x',md5_key) AS UNSIGNED ) FROM bigtable limit 1

Ergebnis = 0
Zeige Warnungen gibt mir: "Truncated incorrect INTEGER value: '0x000002dcc38af6f209e91518db3e79d3'"

ABER wenn ich das Tue:

SELECT CAST( 0x000002dcc38af6f209e91518db3e79d3 AS UNSIGNED );

Bekomme ich den richtigen Dezimalwert.

Also denke ich, was ich wissen muss, gibt es einen Weg, um MySQL zu sehen, dass string als hex-Wert? (Ich habe auch versucht umwandeln in BINÄR und dann der UNSIGNED, aber das hat nicht funktioniert).

Vielen Dank im Voraus!

InformationsquelleAutor Cfreak | 2009-12-17
Schreibe einen Kommentar