phpbar.de logo

Mailinglisten-Archive

[php] UPDATE in MySQL

[php] UPDATE in MySQL

Kiko Starkmann kiko at webspline.de
Mit Sep 10 09:32:02 CEST 2003


Hallo deutschsprachige,

Am Mittwoch, 10. September 2003 um 00:52 schriebst du:

> André Frimberger schrieb,

>> jo, is klar...
>> WHERE kann auch immer nur einmal in einem SQL Statement stehen.
>> du kannst entweder folgendes machen:
>> UPDATE table SET status = 0 WHERE id=1 OR id=2 OR id=3;
>   klappt also nicht, wenn status verschiedene werte hat?
Nein, nicht in einem Query.

>>   oder
>> du machst für jeden Datensatz nen eigenen Query.
>   ist das realistisch?
>   die tabelle ist ja durchaus realistisch, zb. mailinglisten usw.
>   wie wird das denn gemacht, wenn das größer wird?
Musst du ja idR nicht. Wenn du z.B. wie hier boolesche Werte ändern
möchtest brauchst du genau 2 Queries:

UPDATE table SET status = 0 WHERE id=1 OR id=3 OR id=5 OR
[naundsoweiter]

UPDATE table SET status = 1 WHERE id=2 OR id=4 OR id=6 OR
[naundsoweiter]

Die verschiedenen "Untergruppen/Teilmengen" solltest du ja wissen
respektive ermitteln können. Dann ist das auch kein Problem. Du musst
also nicht pro Datensatz, sondern pro Wertalternative ein Query
machen. Und wenn das Performanceprobleme gibt würde ich erstmal
überlegen ob das die richtige Lösung ist; Da müsstest du schon sehr
viele Alternativwerte haben...

>> was hat das jetzt mit count(*) zu tun ? *grübel*
>   naja .. COUNT ( * ) = Anzahl der Datensätze und ich wollte ja
>   wissen, ob ich es x mal ( wobei COUNT ( * ) AS x ;) ) machen muss
Schon klar, aber das brauchst du nicht. Du solltest nur darauf achten,
im PHP alle Datensätze zu erfassen und dem richtigen der beiden
Queries zuzuordnen ;)

>> HTH
dito

liebe Grüsse,
 Kiko

--  
cause nonsense is better than no sense at all...
christoph starkmann
phone:0179-1162652
mailto:kiko at gruppe-69.com
http://www.webspline.de
-- 


php::bar PHP Wiki   -   Listenarchive