我目前的数据

SELECT PROD_CODE FROM `PRODUCT`

is

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;

所有throw语法错误如下:

你的SQL语法有错误;请查看MySQL服务器版本对应的手册,以获得正确的语法 作为INT从产品限制0,30'在第1行 你的SQL语法有错误;查看手册 对应于您的MySQL服务器版本,以使用正确的语法 从产品限制0,30'在第1行

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

MySQL版本:5.5.16


当前回答

为了将varchar字段/值转换为数字格式,可以使用小hack:

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

其他回答

如强制转换函数和操作符中所述:

结果的类型可以是以下值之一: 二进制((N)) CHAR ((N)) 日期 DATETIME 小数((M [D])) 签署(整数) 时间 无符号(整数)

因此,你应该使用:

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT

为了将varchar字段/值转换为数字格式,可以使用小hack:

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