jac*_*cob 9 mysql operand mysql-error-1241
我可以找到很多类似的问题,但对我的问题没有真正的解决方案.
我的SQL查询:
UPDATE ADRESSEN
SET EMAIL = 0
WHERE ID = (SELECT ID, COUNT(ID) AS COUNTER
FROM EIGENSCHAFTEN WHERE Kategorie = "BOUNCE"
GROUP BY ID
HAVING COUNTER = 1)
Run Code Online (Sandbox Code Playgroud)
我收到的错误代码是
#1241 - Operand should contain 1 column(s)
Run Code Online (Sandbox Code Playgroud)
如果我只是在括号中使用查询它的工作原理,结果是
ID | COUNTER
0002159 | 1
Run Code Online (Sandbox Code Playgroud)
我的错误在哪里?非常感谢你的帮助.
小智 11
问题是你的内部查询返回两列.修改您的查询,如
UPDATE ADRESSEN
SET EMAIL = 0
WHERE ID = (SELECT ID
FROM EIGENSCHAFTEN WHERE Kategorie = "BOUNCE"
GROUP BY ID
HAVING COUNT(ID) = 1)
Run Code Online (Sandbox Code Playgroud)
这应该工作.
我还有一个建议,你确定你的内部查询总会返回一行吗?如果你想为内部查询返回的多个ID设置EMAIL值为0,我建议你使用"IN"而不是"=".
WHERE ID IN (SELECT ID
FROM EIGENSCHAFTEN
WHERE Kategorie = "BOUNCE"
GROUP BY ID
HAVING COUNT(*) = 1 )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52847 次 |
| 最近记录: |