Приведение из 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`
Другие вопросы по тегам