MySQL 错误 #1241

标签 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 - Operand should contain 1 column(s).

我明白错误的意思,但我不知道为什么会出现在这里。子查询实际上返回 1 行 1 列。我查了一下:

子查询的 PHPMyAdmin 返回:

enter image description here

那么,有人知道为什么我会收到此错误吗?

谢谢

最佳答案

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

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

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

关于MySQL 错误 #1241,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789306/

相关文章:

mysql - 在django中采样mysql结果

php - Yii2相册图片->点赞关系

mysql - MySQL 存储过程可以返回行流而不将它们存储在临时表中吗?

t-sql - 从存储过程中获取 Top N

sql - 如何在联合查询中的另一个选择中使用一个选择的结果?

mysql - 如何在较新版本的 MySQL 中以编程方式验证密码?

php - Laravel,将加密的 secret 存储在 MySQL 索引列中

mysql - 组合两个查询(子查询)时遇到问题

python - Sqlalchemy: joinedload + limit

cakephp - 如何创建使用子查询的联接?