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