SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 09.05.2011 14:19:08

Владислав
Участник
Зарегистрирован: 09.05.2011
Сообщений: 2

Отрицательные значение в Mysql

Люди знаю Mysql немного и вот возник вопрос необходимо что бы в ячейке хранились цифровые значения но только от 0 и выше то есть что бы не уходили они в -1 -2 -3 и.т.д. задал для поля INT UNSIGNED и при попытке скриптом изменить значение в ячейку вписывается какая то ерунда. например в поле число 3 скрипт делает минус -1 от значения поля и в итоге получается что то типа того 49464334 (точные цифры не помню) подскажите что править и может ли сам мускл следить за значением поля

Неактивен

 

#2 09.05.2011 14:59:13

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Отрицательные значение в Mysql

Приведите show create table Вашей таблицы, данные таблицы, и запрос, которым Вы меняете значения.

mysql> CREATE TABLE `t_4230` (   `id` int(11) NOT NULL auto_increment PRIMARY KEY,    `val` int unsigned default NULL ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into `t_4230`(val) values (3),(7);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from `t_4230`;
+----+------+
| id | val  |
+----+------+
|  1 |    3 |
|  2 |    7 |
+----+------+
2 rows in set (0.00 sec)

mysql> update `t_4230` set `val`=3 where `id`=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from `t_4230`;
+----+------+
| id | val  |
+----+------+
|  1 |    3 |
|  2 |    3 |
+----+------+
2 rows in set (0.00 sec)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 09.05.2011 15:35:59

Владислав
Участник
Зарегистрирован: 09.05.2011
Сообщений: 2

Re: Отрицательные значение в Mysql

создал таблицу
CREATE TABLE IF NOT EXISTS `notes` (
`id` int(50) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`modes` INT unsigned default NULL)
ENGINE=MyISAM  DEFAULT CHARSET=utf8;

делаю UPDATE notes SET modes=modes-1; В поле значение 0

результат в ячейке 4294967295

Отредактированно Владислав (09.05.2011 15:37:11)

Неактивен

 

#4 09.05.2011 15:43:44

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Отрицательные значение в Mysql

Понятно. -1 в беззнаковом представлении в четырёхбайтном целом - это как раз  4294967295.

Вопрос в том, как Вам больше нравится - чтобы MySQL не пропускал такой запрос вовсе или чтобы он заносил другое значение.

Посмотрите здесь и здесь


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

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