为什么在MySQL中使用CAST时会出现语法错误?
我使用的是MySQL workbench v5.2.44 CE。我正在针对本地MySQL 5.5安装运行它 我试图使用为什么在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 我什么都试过
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
关键字作为类型转换无效。@BobDuellINT
对于类型转换无效。CAST
将INT
替换为SIGNED
、UNSIGNED
或DECIMAL(20)
(将组合计数解释为整数值)