phpbar.de logo

Mailinglisten-Archive

update mit ermittelten werten in einer query

update mit ermittelten werten in einer query

Tobias Daur daur at so-nso.de
Die Mai 30 23:26:34 CEST 2006


Na, dann antworte ich mir mal selber - für Euch, fürs Archiv und die
Nachwelt:

Das Problem besteht darin, ein Update mit Werten zu machen, die durch
einen Select erst ermittelt werden müssen. 

Bis MySQL 4.0 geht das nur über mehrere Queries und mit Hilfe temporärer
Tabellen.

Ab MySQL 4.1 gibt es Subselects, und genau ein solcher hilft hier:

UPDATE artikel LEFT JOIN (SELECT DISTINCT ... as empfohlen,
idartikel ...) as t on t.idartikel = artikel.idartikel
SET artikel.empfohlen = t.empfohlen

Für die UPDATE-Query gibt es also eine Tabelle t auf die gejoint wird
und deren Wert übernommen wird. In der Subquery wird über den SELECT
diese Tabelle als Ergebnis einer Abfrage aufgebaut. 

Tut und macht glücklich. 

Tobias

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Dies ist ein digital signierter Nachrichtenteil
URL         : http://lists.mushaake.org/pipermail/mysql-de/attachments/20060530/0a4f67ab/attachment-0001.bin 

php::bar PHP Wiki   -   Listenarchive