318

我的当前数据

SELECT PROD_CODE FROM `PRODUCT`

PROD_CODE
2
5
7
8
22
10
9
11

我已经尝试了所有四个查询,但没有任何工作。(参考

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

4

2 回答 2

638

Cast 函数和运算符中所述:

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

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

因此,您应该使用:

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
于 2012-08-26T01:35:01.833 回答
78

为了将 varchar 字段/值转换为数字格式,可以使用很少的技巧:

SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`
于 2016-03-01T19:00:37.750 回答