MySQL错误#1241

时间:2018-04-12 06:19:06

标签: 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列。

我理解错误的含义,但我不知道为什么我会在这里得到它。子查询实际上返回1行,包含1列。我查了一下:

PHPMyAdmin返回子查询:

enter image description here

所以,任何人都知道为什么我会收到这个错误?

THX

1 个答案:

答案 0 :(得分:1)

SQL查询中文字的小数分隔符是点(.),与任何区域设置或格式设置无关。因此,您必须将数字425,0表示为425.0

UPDATE ... SET cash_box=(cash_box-(425.0)) WHERE ...

错误消息来自逗号被解释为列分隔符,这使得(425,0)看起来像是两列。

相关问题