我目前的数据
SELECT PROD_CODE FROM `PRODUCT`
Run Code Online (Sandbox Code Playgroud)
是
PROD_CODE
2
5
7
8
22
10
9
11
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有四个查询,但都没有工作.(参考)
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;
Run Code Online (Sandbox Code Playgroud)
所有抛出语法错误,如下所示:
您的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
egg*_*yal 515
结果的类型可以是以下值之一:
BINARY[(N)]CHAR[(N)]DATEDATETIMEDECIMAL[(M[,D])]SIGNED [INTEGER]TIMEUNSIGNED [INTEGER]
因此,您应该使用:
SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
Run Code Online (Sandbox Code Playgroud)
Jir*_*iva 52
对于将varchar字段/值转换为数字格式,可以使用少量hack:
SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`
Run Code Online (Sandbox Code Playgroud)