Передача от VARCHAR до INT - MySQL
Мои текущие данные для
SELECT PROD_CODE FROM `PRODUCT`
является
PROD_CODE
2
5
7
8
22
10
9
11
Я пробовал все четыре запроса, и никто не работал. (Ref)
SELECT CAST(PROD_CODE) AS INT FROM PRODUCT;
SELECT CAST(PROD_CODE AS INT) FROM PRODUCT;
SELECT CAST(PROD_CODE) AS INTEGER FROM PRODUCT;
SELECT CAST(PROD_CODE AS INTEGER) FROM PRODUCT;
Все синтаксические ошибки throw, такие как ниже:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного использования синтаксиса рядом ') AS INT FROM PRODUCT LIMIT 0, 30' в строке 1
У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с "INTEGER" ) ИЗ ЛИНИИ ПРОДУКТА 0, 30 'в строке 1
Каков правильный синтаксис для преобразования varchar в integer в MySQL?
Версия MySQL: 5.5.16
Ответы
Ответ 1
Как описано в Функции и операторы трансляции:
Тип результата может быть одним из следующих значений:
-
BINARY[(N)]
-
CHAR[(N)]
-
DATE
-
DATETIME
-
DECIMAL[(M[,D])]
-
SIGNED [INTEGER]
-
TIME
-
UNSIGNED [INTEGER]
Поэтому вы должны использовать:
SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
Ответ 2
Для отливки полей varchar/значений в формат числа может быть немного взлома:
SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`
Ответ 3
Вы можете сделать следующее:
SELECT CAST(PROD_CODE AS CHAR) FROM product;