从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服务器版本相对应的手册,以在'1'附近使用正确的语法使用')第1行的产品限制0,30'

你的SQL语法有错误; 检查与你的MySQL服务器版本相对应的手册,在第一行的'INTEGER)FROM PRODUCT LIMIT 0,30'附近使用正确的语法

什么是在MySQL中将varchar转换为整数的正确语法?

MySQL版本:5.5.16

如Cast演绎和操作符中所述 :

结果的types可以是以下值之一:

  • 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` 

你可以这样做: SELECT CAST(PROD_CODE AS CHAR) FROM product;