Ich versuche, die folgende in MySQL zu tun:in COALESCE in MySQL SELECT
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);
Es klingt für mich sehr gültig. Ich versuche, eine Spalte mit den am besten geeigneten Wert zu aktualisieren. Wenn ich einen Datensatz finden kann, der den 3 Kriterien entspricht -> das ist der, den ich brauche. Sonst die eine passend 2 Kriterien, sonst eine Aufzeichnung, die nur ein Kriterium zusammenbringt.
Ich kann dies in 3 Update-Abfragen, aber ich verstehe nicht, warum das nicht funktioniert. Nach dem manual:
COALESCE returns the first non-NULL value in the list, or NULL if there are no non-NULL values.
Das genau, was ich brauche. aber es gibt den folgenden Fehler:
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'
Bin ich hier etwas fehlt?
Können Sie die Fehlermeldung posten? – Don
Können Sie eine vollständige Abfrage bereitstellen, d. H. Ohne Ihre Verallgemeinerung darin. Es würde helfen, genauere Ratschläge zu geben. –
Es ist nur ein 1064 Syntaxfehler. Meine Abfrage ist im Grunde das. Es gibt einen Syntaxfehler genau bei SELECT innerhalb der COALESCE. – Sherlock