SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 01.10.2008 14:54:05

Mikasto
Завсегдатай
Зарегистрирован: 25.09.2007
Сообщений: 35

Как из MD5 сделать BIGINT ???

Пробовал :
есть переменная str

допустим что str = 'строка'

CONV(MD5(str), 16, 10) - какой бы не была переменная а число выходит одно и то же

Как получить число?

Проверяю на таком запросе:


SELECT
MD5('www.domain.ru/www') a,
CONCAT(MD5('www.domain.ru/www'), '0') b,
CONV(CONCAT(MD5('www.domain.ru/www'), '0'), 16, 10) c,
CONCAT(MD5('www.domain.ru'), '0') d,
CONV(CONCAT(MD5('www.domain.ru'), '0'), 16, 10) e
 

Неактивен

 

#2 01.10.2008 14:56:34

Mikasto
Завсегдатай
Зарегистрирован: 25.09.2007
Сообщений: 35

Re: Как из MD5 сделать BIGINT ???

ИЛи проще:


SELECT
CONV(MD5('www.domain.ru/www'), 16, 10) c,
CONV(MD5('www.domain.ru'), 16, 10) c

Неактивен

 

#3 01.10.2008 15:23:23

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как из MD5 сделать BIGINT ???

Это максимальное 64-битное целое, MySQL более больших целых не понимает. Разбивайте md5 на 4 подстроки и каждую превращайте в число отдельно.

SELECT conv(SUBSTR(md5('xx'),1,8),16,10), conv(SUBSTR(md5('yy'),1,8),16,10);

Неактивен

 

#4 01.10.2008 15:55:29

Mikasto
Завсегдатай
Зарегистрирован: 25.09.2007
Сообщений: 35

Re: Как из MD5 сделать BIGINT ???

Мда... Спасибо.

Выходит что лучше на пхп это сделать...

Неактивен

 

#5 01.10.2008 17:52:34

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Как из MD5 сделать BIGINT ???

Честно говоря, не понял, что "это" - md5 занимает 12 байт, а bigint вмещает только 8...
Если Вам нужно числом представить первые 16 символов - отрежьте их просто... но это будет не честная сумма smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson