mysql指令操作数,MySQL错误“操作数应包含1列”

I could find a lot of similar questions but no real solution for my problem.

My SQL query:

UPDATE ADRESSEN

SET EMAIL = 0

WHERE ID = (SELECT ID, COUNT(ID) AS COUNTER

FROM EIGENSCHAFTEN WHERE Kategorie = "BOUNCE"

GROUP BY ID

HAVING COUNTER = 1)

The error code I receive is

#1241 - Operand should contain 1 column(s)

If I just use the query in the parentheses it works and the result is

ID | COUNTER

0002159 | 1

Where is my error?

Thanks a lot for your help.

解决方案

The issue is your inner query is returning two columns. Modify your query like

UPDATE ADRESSEN

SET EMAIL = 0

WHERE ID = (SELECT ID

FROM EIGENSCHAFTEN WHERE Kategorie = "BOUNCE"

GROUP BY ID

HAVING COUNT(ID) = 1)

This should work.

I have one more suggestion, are you sure that your inner query will always return one row?

If you want EMAIL to be set with value 0 for multiple IDs returned by inner query I would recommend you use "IN" instead of "=".

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值