SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 05.04.2011 21:56:36

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

что за баг

MySQL не перестает меня удивлять своей уникальностью )
вот ситуация выборка из двух таблиц:

SELECT t1.current-t2.stated from t1,t2
where t1.user='Petya' and t2.user='Petya';

Результат : 18446744073709551615
а ожидался результат -1 так как в ячейках числа 1 и 2 соответсвенно, в чем тут дело то не понимаю??

А при сложении ячеек дает правильный результат 3

Поменял ячейки местами t2.stated-t1.current получил 1 без унарного минуса, что за дело то происходят? smile

Отредактированно simple (05.04.2011 22:02:41)

Неактивен

 

#2 06.04.2011 09:42:52

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

Re: что за баг

Опишите подробнее как воспроизвести баг. Структура таблиц, типы колонок, содержимое, версия MySQL.

Неактивен

 

#3 08.04.2011 21:40:16

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

Re: что за баг

На самом деле, если преобразовать вот это страшное число в шестнадцатеричный
вид, видно, что оно равно 0xFFFFFFFFFFFFFFFF. Это число -1, но представленное, как
беззнаковое целое. Скорее всего, у Вас одна из колонок BIGINT UNSIGNED, и про-
исходит обычное переполнение.

Неактивен

 

Board footer

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