@thekip
Php/C#/Js Developer

Как заставить MySql считать текстовое значение столбца HEX числом?

Суть задачи: необходимо побитово сравнить два HEX значения, одно приходит из php, второе лежит в базе в текстовом виде. Проблема в том, что не удаётся вытащить второе значение ввиде HEX числа, только как строку. Первое число "вклеивается" в запрос на строне php примерно так "SELECT hash ^ 0x".$hash." FROM...." и с этим проблем нет.

Как заставить MySql считать текстовое значение столбца HEX числом?

Например, если составить запрос руками и вписать туда 2 hex
SELECT 0xd9d8266fd990160f ^ 0xd9d8266fd990160e

То вернет, как положенно 1. (^ это побитовый оператор XOR)

Но если сравнить со значением из колонки, т.е.
SELECT 0xd9d8266fd990160f ^ column from table
То возвращает ерунду, т.к. считает значение колонки не HEX, а string.
  • Вопрос задан
  • 2529 просмотров
Решения вопроса 1
Если столбец hash хранит строку 'd9d8266fd990160f', то попробуйте такой вариант запроса:
SELECT CONV(hash, 16, 10) ^ 0xd9d8266fd990160e FROM table
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы