从VARCHAR转换为INT

我目前的数据

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


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

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

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

    链接地址: http://www.djcxy.com/p/93651.html

    上一篇: Cast from VARCHAR to INT

    下一篇: Mysql and PHP Problem?