Задавайте вопросы, мы ответим
Вы не зашли.
Люди знаю Mysql немного и вот возник вопрос необходимо что бы в ячейке хранились цифровые значения но только от 0 и выше то есть что бы не уходили они в -1 -2 -3 и.т.д. задал для поля INT UNSIGNED и при попытке скриптом изменить значение в ячейку вписывается какая то ерунда. например в поле число 3 скрипт делает минус -1 от значения поля и в итоге получается что то типа того 49464334 (точные цифры не помню) подскажите что править и может ли сам мускл следить за значением поля
Неактивен
Приведите 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)
Неактивен
создал таблицу
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)
Неактивен
Понятно. -1 в беззнаковом представлении в четырёхбайтном целом - это как раз 4294967295.
Вопрос в том, как Вам больше нравится - чтобы MySQL не пропускал такой запрос вовсе или чтобы он заносил другое значение.
Посмотрите здесь и здесь
Неактивен