Update mit subselect

Hallo,

Ich weiß nicht wieso die folgende Query nicht funktioniert:

UPDATE history SET hours=60,conntent=‘bsp’
WHERE wpnr=(select wpnr from tabelle where title=‘keine ahnung’ AND project=‘7.5’);

Ich hoffe ihr könnt mir helfen.

Vielen Dank
Mark

“nicht funktioniert” ist keine mir gekannte Fehlermeldung von PostgreSQL, aber ich vermute mal Du bekommst einen Fehler “single value sub-select returns more than one row” oder sowas ähnliches.

Das liegt daran, das Dein SELECT eine Menge zurückliefert und eine Menge nicht mit = vergleichen werden kann. Mann muss stattdessen den IN Operator verwenden:

WHERE wpnr [b][SIZE="4"]IN[/size][/b] (select wpnr from tabelle where title='keine ahnung' AND project='7.5')

Das kann aber überraschende Effekte haben, wenn die Spalte wpnr NULL Werte enthalten kann.

OK vielen Dank erst einmal für die Information, aber ich bekommen seltsamer Weise bei beiden Queryversionen einen Syntax error.

Ist evtl. etwas nicht Normgerecht an der Query?

Und der Fehler ist?

ERROR 1064 (42000): You have an error in your SQL syntax;

Das ist keine PostgreSQL Fehlermeldung.

Klingt mehr nach MySQL…

Das vermutete ich schon in dem anderen Thread, als er nach REPLACE gefragt hat.

bamdenied: dieses Forum hier dreht sich ausschließlich um PostgreSQL, nicht um MySQL.
Das sind zwei verschiedene Produkte.

Naja, PostgreSQL hat ja auch eine replace() Funktion.