У меня очень большая таблица в MySQL. Я использую поле CHAR (32), которое содержит MD5 в качестве строки, конечно. Я сталкиваюсь с проблемой, где мне нужно преобразовать это в десятичное значение, используя MySQL. Сторонний инструмент запускает запрос, поэтому написание кода для этого на самом деле не вариант.
MySQL поддерживает собственное хранение шестнадцатеричных значений и преобразование их в целые числа. Но он зависает, превращая его из строки. Вот что я пробовал до сих пор (md5_key - название моей колонки)
Сначала я только что попробовал функцию UNHEX, но она возвращает строку, поэтому она дала мне gooblygoop. Я не буду помещать это здесь. Затем я попробовал функцию CAST
SELECT CAST( CONCAT('0x',md5_key) AS UNSIGNED ) FROM bigtable limit 1
Результат = 0
Показывать предупреждения дает мне: «Усеченное неверное значение INTEGER: '0x000002dcc38af6f209e91518db3e79d3'"
НО, если я сделаю:
SELECT CAST( 0x000002dcc38af6f209e91518db3e79d3 AS UNSIGNED );
Я получил правильное десятичное значение.
Итак, я думаю, что мне нужно знать, есть ли способ заставить MySQL видеть эту строку как шестнадцатеричное значение? (Я также пытался преобразовать его в BINARY, а затем в UNSIGNED, но это тоже не сработало).
Заранее спасибо!