2017-01-15 1 views
0

Я пытаюсь написать запрос SQL UPDATE для уменьшения некоторого значения в моей таблице с именем users. Ниже CREATE TABLE скрипт для users таблицыmysql update query не работает с большими номерами

CREATE TABLE users 
( 
    user_id int(11) NOT NULL AUTO_INCREMENT, 
    username varchar(60) NOT NULL, 
    email varchar(60) NOT NULL, 
    password varchar(255) NOT NULL, 
    money float NOT NULL, 
    PRIMARY KEY (user_id) 
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 

Я использую следующий запрос:

UPDATE users SET money = money - 1000 WHERE user_id = 1; 

Это работает нормально.

но когда значение «деньги» является большим числом (например, 33550400000), оно просто ничего не делает. Когда я вручную выполняю запрос в phpMyAdmin, он печатает 0 rows affected. (Query took 0.0003 seconds.)

Как я могу заставить его работать с большими номерами?

+0

может быть типа данных оленьей кожи справиться с этим большим значением –

+3

поплавком является очень плохим выбором для денег. – jarlh

+0

@jarlh, так что я должен использовать вместо float? –

ответ

0

Используйте десятичный тип данных в sql для столбца денег. Он работает нормально. enter image description here enter image description here

+0

Теперь я не могу установить высокие числа. Когда я пытаюсь установить значение «деньги» на 33550400000, он выдает эту ошибку: # 1264 - Значение вне диапазона для столбца «деньги» в строке 1 –

+0

Вы изменили тип столбца столбца на десятичный? – Nimish

+0

Используйте десятичную (10,0) или десятичную (10,2). В поле Длина при изменении типа данных заполните 10,0 и сохраните – Nimish

Смежные вопросы