从VARCHAR转换为INT - MySQL

时间:2012-08-26 01:26:30

标签: mysql sql

我当前的数据

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服务器版本对应的手册,以获得正确的语法   靠近')AS INT FROM PRODUCT LIMIT 0,30'at line 1

     

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'INTEGER)从产品限制0,30'在第1行

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

MySQL版本:5.5.16

2 个答案:

答案 0 :(得分:485)

Cast Functions and Operators中所述:

  

结果的类型可以是以下值之一:

     
      
  • BINARY[(N)]
  •   
  • CHAR[(N)]
  •   
  • DATE
  •   
  • DATETIME
  •   
  • DECIMAL[(M[,D])]
  •   
  • SIGNED [INTEGER]
  •   
  • TIME
  •   
  • UNSIGNED [INTEGER]
  •   

因此,您应该使用:

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT

答案 1 :(得分:46)

对于将varchar字段/值转换为数字格式,可能很少使用:

SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`