Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在MySQL中使用CAST时会出现语法错误?_Mysql_Sql_Mysql Workbench - Fatal编程技术网

为什么在MySQL中使用CAST时会出现语法错误?

为什么在MySQL中使用CAST时会出现语法错误?,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我使用的是MySQL workbench v5.2.44 CE。我正在针对本地MySQL 5.5安装运行它 我试图使用CAST函数,但不断出现以下错误: 语法错误,意外的INT\u SYM 源日期和目标日期类型是什么并不重要。只有当目标数据类型为DECIMAL时,它才不会给我错误。以下是一个例子: SELECT CAST(IFNULL(comboCount, 1) * COUNT(partID) AS INT) INTO comboCount FROM productOption 我什么都试过

我使用的是MySQL workbench v5.2.44 CE。我正在针对本地MySQL 5.5安装运行它

我试图使用
CAST
函数,但不断出现以下错误:

语法错误,意外的INT\u SYM

源日期和目标日期类型是什么并不重要。只有当目标数据类型为
DECIMAL
时,它才不会给我错误。以下是一个例子:

SELECT CAST(IFNULL(comboCount, 1) * COUNT(partID) AS INT) INTO comboCount
FROM productOption

我什么都试过了,但似乎都不管用。

试着在外面算算:

SELECT CAST(IFNULL(comboCount, 1) AS INT) * COUNT(partID) INTO comboCount
FROM productOption

如果不起作用,尝试将
转换为
未签名的
;不是
INT

谢谢njk。所以在外面做数学是行不通的。未签名作品。但我不明白为什么。如果我想将其转换为FLOAT呢。FLOAT给了我同样的错误。@SilentUser指定了可用的类型。你需要使用
decimal
@njk我很困惑;答案是正确的还是应该是十进制的
答案?答案是正确的,不带符号的
。OP在使用十进制时还有另一个实例。您可以使用
有符号
无符号
十进制(20)
。答案中给出的语法将抛出错误,因为它与原始查询有相同的问题。。。裸
INT
关键字作为类型转换无效。@BobDuell
INT
对于类型转换无效。
CAST
INT
替换为
SIGNED
UNSIGNED
DECIMAL(20)
(将
组合计数解释为整数值)