我試圖做在MySQL中以下內容:選擇在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個更新查詢中做到這一點,但我不明白爲什麼這不起作用。按照manual:
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'
我在這裏失去了一些東西?
你能發佈錯誤信息嗎? – Don 2013-03-26 13:12:14
您是否能夠提供完整的查詢,即沒有您的泛化?這將有助於提供更準確的建議。 – 2013-03-26 13:12:42
這只是一個1064語法錯誤。我的查詢基本上是這樣的。它在COALESCE中的SELECT中恰好給出了語法錯誤。 – Sherlock 2013-03-26 13:13:14