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