Приведение от 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;


все синтаксические ошибки броска, такие как ниже:




у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать
рядом') как INT от предела продукта 0, 30 ' в строке 1



у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое
соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать
около 'INTEGER) от предела продукта 0, 30' в строке 1




каков правильный синтаксис для приведения varchar к целому числу в MySQL?



Версия MySQL: 5.5.16

597   2  

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`

Comments

    Ничего не найдено.