Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсчет значений при update
 
 автор: Max_Ivanov   (14.05.2011 в 15:49)   письмо автору
 
 

Скажите пожалуйста можно ли так делать

UPDATE `users` SET `users_rating`=(`users_posrating`-`users_negrating`)-1 WHERE `users_login`=? LIMIT 1;"


то есть при обновлениии users_rating брать разницу полей users_posrating и users_negrating
у меня вроде бы все работает нормально, но если сумма (`users_posrating`-`users_negrating`)-1 менее нуля, то в базу почему то записывается число 8388607, хотя поле не UNSIGNED, а если более нуля, то все считает правильно

вот структура

`users_rating` mediumint(8) NOT NULL default '0',
`users_posrating` mediumint(8) unsigned NOT NULL default '0',
`users_negrating` mediumint(8) unsigned NOT NULL default '0',

  Ответить  
 
 автор: cheops   (14.05.2011 в 17:30)   письмо автору
 
   для: Max_Ivanov   (14.05.2011 в 15:49)
 

Так у вас поля users_posrating и users_negrating как раз UNSIGNED, следовательно результат преобразования получается тоже UNSIGNED. Тут вероятно потребуется преобразовать значение полей перед операцией вычитания, например, при помощи CAST.

  Ответить  
 
 автор: Max_Ivanov   (14.05.2011 в 17:59)   письмо автору
 
   для: cheops   (14.05.2011 в 17:30)
 

спасибо, так все работает нормально
`users_rating`=CAST(`users_posrating`-`users_negrating` AS SIGNED)-1

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования