这是我的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返回子查询:
所以,任何人都知道为什么我会收到这个错误?
THX
答案 0 :(得分:1)
SQL查询中文字的小数分隔符是点(.
),与任何区域设置或格式设置无关。因此,您必须将数字425,0表示为425.0
:
UPDATE ... SET cash_box=(cash_box-(425.0)) WHERE ...
错误消息来自逗号被解释为列分隔符,这使得(425,0)
看起来像是两列。