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つの基準に適合するもの、それ以外の場合は1つの基準にのみ一致するレコード。
これは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'
ここで何かが足りませんか?