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 "=".