MySQL错误#1241
这是我的SQL:MySQL错误#1241,mysql,subquery,Mysql,Subquery,这是我的SQL: UPDATE seg_guidesdata SET cash_box=(cash_box-(425,0)) WHERE idseg_guidesdata=(SELECT fk_guidedata FROM users WHERE idusers=180); 很简单,但我得到了错误 #1241-操作数应包含1列 我明白这个错误的意思,但我不知道为什么我会在这里得到它。子查询实际上返回一行一列。我查了一下: PHPMyAdmin返回子查询: 有人知道我为什么会犯这个错误吗
UPDATE seg_guidesdata
SET cash_box=(cash_box-(425,0))
WHERE idseg_guidesdata=(SELECT fk_guidedata FROM users WHERE idusers=180);
很简单,但我得到了错误
#1241-操作数应包含1列
我明白这个错误的意思,但我不知道为什么我会在这里得到它。子查询实际上返回一行一列。我查了一下:
PHPMyAdmin返回子查询:
有人知道我为什么会犯这个错误吗
THX在SQL查询中,文本的十进制分隔符是点(
),而与任何区域设置或格式设置无关。因此,您必须将数字425,0表示为425.0
:
UPDATE ... SET cash_box=(cash_box-(425.0)) WHERE ...
错误消息来自被解释为列分隔符的逗号,这使得
(425,0)
看起来像是两列。我解决了它,问题不是子查询,而是在第一部分:425,0应该是425.0:D