我正在尝试在 MySQL 中执行以下操作:
UPDATE
x
SET
y = COALESCE(SELECT z FROM table WHERE a = b AND c = d AND e = f LIMIT 1,
SELECT z FROM table WHERE a = b AND c = d LIMIT 1,
SELECT z FROM table WHERE a = b LIMIT 1);
这对我来说听起来很有效。我正在尝试使用最合适的值更新列。如果我能找到符合 3 个条件的记录 -> 那就是我需要的。否则一个适合 2 个标准,否则一个记录只匹配一个标准。
我可以在 3 个更新查询中做到这一点,但我不明白为什么这不起作用。根据手册:
COALESCE returns the first non-NULL value in the list, or NULL if there are no non-NULL values.
这正是我需要的。但它给出了以下错误:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT'
我在这里错过了什么吗?