首页 文章

从VARCHAR转换为INT - MySQL

提问于
浏览
207

我目前的数据

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'的AS INT FROM PRODUCT LIMIT 0,30'中使用正确的语法 . 您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'INTEGER)FROM PRODUCT LIMIT 0,30'附近使用正确的语法

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

MySQL版本:5.5.16

2 回答

  • 35

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

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

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

相关问题