Отрицательные значения чисел не верно записываются

Отрицательные значения чисел не верно записываются

describe:

| wage_diff           | uint   |            |
update jobVacancyIndex set wage_diff=1 where vacancy_id=918;

mysql> SELECT vacancy_id, wage_from, wage_to, wage_diff, `status` FROM `jobVacancy` WHERE vacancy_id=918;
+------------+-----------+---------+-----------+--------+
| vacancy_id | wage_from | wage_to | wage_diff | status |
+------------+-----------+---------+-----------+--------+
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
|        918 |     28000 |  116000 |         1 |      6 |
+------------+-----------+---------+-----------+--------+
8 rows in set (0,00 sec)


Попытка записывать отрицательное число

update jobVacancyIndex set wage_diff=-1 where vacancy_id=918;

mysql> SELECT vacancy_id, wage_from, wage_to, wage_diff, `status` FROM `jobVacancy` WHERE vacancy_id=918;
+------------+-----------+---------+------------+--------+
| vacancy_id | wage_from | wage_to | wage_diff  | status |
+------------+-----------+---------+------------+--------+
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
|        918 |     28000 |  116000 | 4294967295 |      6 |
+------------+-----------+---------+------------+--------+


Можно ли записывать и индексировать отрицательные числа если да каким способом можно добиться?

вы используете uint тип данных - который беззнаковый, если вам нужен тип данных со знаком - то лучше использвать тип bigint

1 Like

Понял, спасибо!