一尘不染

从VARCHAR转换为INT-MySQL

mysql

我当前的数据

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

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

MySQL版本:5.5.16


阅读 252

收藏
2020-05-17

共1个答案

一尘不染

强制转换函数和运算符中所述

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

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

因此,您应该使用:

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
2020-05-17