После того, как я выполню следующий запрос:
INSERT INTO `temp` (`id`, `user_id`) VALUES (110, 100003568483914);
Результат в базе данных:
**id user_id** 110 2147483647
Почему значение в таблице отличается от того, которое было вставлено?
do describe temp вы увидите, что user_id является знаком INT, то есть 31 бит для числа + один бит для знака, что дает вам диапазон от -2 ^ 31 до 2 ^ 31 -1 (2147483647 = 2 ^ 31 -1).
describe temp
user_id
вам нужно изменить тип столбца на user_id; похоже, вы храните идентификаторы пользователей Facebook, для которых я бы порекомендовал использовать строки; в любом случае вам никогда не понадобится делать какие-либо арифметические действия.
Измените тип поля на LONG или BIGINT или без знака INT (без знака INT, вероятно, достаточно).