WÄHLEN Sie im VERSCHMELZEN in MySQL

Ich versuche, die folgende in der 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);

Klingt es sehr gültig für mich. Ich bin versucht, zu aktualisieren eine Spalte mit der am besten geeignete Wert. Wenn ich einen Datensatz der 3-Kriterien -> das ist der, den ich brauche. Anderes, das man auch 2 Kriterien, was ein Datensatz nur ein Kriterium.

Kann ich dies in 3-update-Abfragen, aber ich verstehe nicht, warum dies nicht funktioniert. Nach der Handbuch:

COALESCE returns the first non-NULL value in the list, or NULL if there are no non-NULL values.

Dass genau, was ich brauche. aber es gibt die folgende Fehlermeldung:

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?

  • Kannst du die Fehlermeldung?
  • Sind Sie in der Lage, eine vollständige Abfrage, D. H. ohne Ihre Verallgemeinerung in es. Es würde helfen, um genauere Beratung.
  • Es ist nur ein 1064 syntax error. Meine Abfrage ist im Grunde so. Es gibt einen syntax Fehler genau auf die WÄHLEN Sie in der SICHT.
  • Haben Sie versucht, indem Sie jedem dieser subselects in Ihr eigenes paar von Klammern (wie in der Regel erforderlich für subselects)?
InformationsquelleAutor Sherlock | 2013-03-26
Schreibe einen Kommentar