update-bedingung

update-bedingung

am 24.11.2006 20:49:48 von Werner Bauer

Diese Abfrage funkt nicht, aber ihr seht sicher daraus, was ich=20
beabsichtige:

UPDATE tab_bewegungen
SET erledigt_dat =3D now()
WHERE mother_id =3D4711
HAVING sum(preis - bezahlt)=3D0

Geht so etwas - ein SQL vorausgesetzt dass ich (noch) nicht beherrsche - =

überhaupt? Und wenn ja - wie?

TX, Werner

Re: update-bedingung

am 24.11.2006 21:17:23 von Heiko Richler

Hallo Werner,

> Diese Abfrage funkt nicht, aber ihr seht sicher daraus, was ich
> beabsichtige:
>
> UPDATE tab_bewegungen
> SET erledigt_dat = now()
> WHERE mother_id =4711
> HAVING sum(preis - bezahlt)=0
>
> Geht so etwas - ein SQL vorausgesetzt dass ich (noch) nicht beherrsche -
> überhaupt? Und wenn ja - wie?

Having setzt ein Group by voraus. Damit werden Aggregate gebildet.
Eventuell meinst Du als Bedingung so etwas?

WHERE mother_id =4711 AND preis-bezahlt=0

Gruß

Heiko
--
http://www.richler.de/
http://www.richler.info/

Re: update-bedingung

am 24.11.2006 22:16:39 von Werner Bauer

Heiko Richler schrieb:
>> UPDATE tab_bewegungen
>> SET erledigt_dat = now()
>> WHERE mother_id =4711
>> HAVING sum(preis - bezahlt)=0

> Having setzt ein Group by voraus. Damit werden Aggregate gebildet.

Aha:

SELECT mother_id
FROM tab_bewegungen c
WHERE mother_id =4711
GROUP BY mother_id
having (sum(gesamtpreis-bezahlt)=0)

ja das funkt. Aber ein

update tab_bewegungen set erledigt=true
where mother_id in (OBIGES ZEUGS)

tuts nicht. Also muss ich doch mehr PHP nehmen?

Werner

Re: update-bedingung

am 25.11.2006 07:51:06 von Heiko Richler

Guten Morgen,

> update tab_bewegungen set erledigt=true
> where mother_id in (OBIGES ZEUGS)
>
> tuts nicht. Also muss ich doch mehr PHP nehmen?

Mit MySql soweit ich weiß ja geht das bei MySQL tatsächlich nicht. Eine
weitere Möglichkeit könnten Stored Procedures sein. Aber vermutlich ist
die Variante mit PHP am einfachsten.

Gruß

Heiko
--
http://www.richler.de/
http://www.richler.info/

Re: update-bedingung

am 25.11.2006 08:50:41 von Werner Bauer

Heiko Richler schrieb:
> Guten Morgen,
>=20
>> update tab_bewegungen set erledigt=3Dtrue
>> where mother_id in (OBIGES ZEUGS)
>>
>> tuts nicht. Also muss ich doch mehr PHP nehmen?
>=20
> Mit MySql soweit ich weiß ja geht das bei MySQL tatsächlich nicht. =
Eine
> weitere Möglichkeit könnten Stored Procedures sein. Aber vermutlich=
ist
> die Variante mit PHP am einfachsten.

oder mit einer temporären in-Memory-Table.
Aber es geht alles so schnell, dass ich den Zeitunterschied eh nicht=20
messen kann.

Werner