MySql - Ошибка 1690 при выборе выражения сравнения, приведение не решает проблему [дубликат]MySql

Форум по Mysql
Ответить
Anonymous
 MySql - Ошибка 1690 при выборе выражения сравнения, приведение не решает проблему [дубликат]

Сообщение Anonymous »

Я получаю сообщение об ошибке 1690, хотя кажется, что это не связано.
Вот объявление столбцов моей таблицы:
Изображение

CREATE TABLE `my_table` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`NAME` VARCHAR(30) DEFAULT NULL,
`POSITION` INT(11) DEFAULT NULL,
`STEP_ID` INT(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `NAME` (`NAME`,`STEP_ID`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
;

Вот данные моей таблицы:
[img]https://i.sstatic.net /f991hW6t.png[/img]

Вот мой запрос:
SELECT `NAME`, 202000 - STEP_ID FROM my_table WHERE `Name` = 'aaa' ;

И вот что я получаю:
Код ошибки: 1690
Значение BIGINT UNSIGNED выходит за пределы диапазона '(202000 - моя_дб.my_table.STEP_ID)'
Это очень важно, я проверяю эту строку, помещая свои данные в строку за строкой и не выдавая ошибки:
SELECT `NAME`, 202000 - STEP_ID FROM my_table WHERE `Name` = 'aaa' ;

но при использовании имени поля выдает ошибку.
Что я пробовал, но не помогло:
SELECT `NAME`, 202000 - CAST(STEP_ID AS UNSIGNED) FROM my_table WHERE `Name` = 'aaa' ;

SELECT `NAME`, CAST(202000 AS UNSIGNED) - STEP_ID FROM my_table WHERE `Name` = 'aaa' ;

SELECT `NAME`, CAST(202000 AS UNSIGNED) - CAST(STEP_ID AS UNSIGNED) FROM my_table WHERE `Name` = 'aaa' ;

SELECT `NAME`, CAST((CAST(202000 AS UNSIGNED) - STEP_ID) AS UNSIGNED) FROM my_table WHERE `Name` = 'aaa' ;

SELECT `NAME`, CAST((CAST(202000 AS UNSIGNED) - CAST(STEP_ID AS UNSIGNED)) AS UNSIGNED) FROM my_table WHERE `Name` = 'aaa' ;

SELECT `NAME`, CAST(202000 - CAST(STEP_ID AS UNSIGNED)) AS UNSIGNED) FROM my_table WHERE `Name` = 'aaa' ;


Подробнее здесь: https://stackoverflow.com/questions/793 ... he-problem
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»