Forum Doku Wiki Blog

Forumsarchiv 2007, Februar
UPDATEmit mehreren WHERE

archivierte Beiträge lesen

  1. (DATENBANK) UPDATEmit mehreren WHERE von Paul, 23. 02. 2007, 17:53

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 17:53 Uhr von Paul veröffentlicht.

Hi,

besteht irgendiwe die Möglichkeit eines UPDATE befehls mit mehren unterschiedlichen Where Möglichkeiten.

Beispiel:

UPDATE tabelle
SET BUCH='Gut'
WHERE
Author = 'Danny' OR
Author = 'Michael' OR
Author = 'George'
ELSE
WHERE
Author='Hans'
SET BUCh ='schlech'
...


Also eine Art Fallunterscheidung. Wenn der so heist, dann Update so, andernfalss so,  und so weiter.

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 18:31 Uhr von Ilja veröffentlicht.

yo,

> besteht irgendiwe die Möglichkeit eines UPDATE befehls mit mehren unterschiedlichen Where Möglichkeiten.

pro Update Befehle kann es nur eine WHERE klausel geben. Allerdings können unterabfragen eine eigene WHERE klausel besitzen.

was du aber machen willst ist, nicht in der WHERE klausel eine unterscheidung zu treffen, sondern in der SET klausel. Auch dort geht es, IF oder CASE sind dazu geeignete mittel. in der WHERE klausel nimmst du alle Datensätze rein, die du updaten willst, in der SET klausel bringst du die Unterscheidungslogik mit CASE oder IF rein, die du haben willst.

UPDATE tabelle SET buch = IF(author = 'Hans', 'schlecht', 'Gut')
WHERE Author IN ('Danny', 'Michael', 'George', 'Hans')
;

je nach Logik, die du implementieren willst, musst du die Anweisung entsprechend verändern.

btw,. du brauchst nicht für jede Zusatzfrage einen neuen Beitrag aufmachem oder deinen Bruder posten lassen.

Ilja

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 19:34 Uhr von Paul veröffentlicht.

Danke dir für deine Geduld.

Könntest du mir für den CASE Fall bitte mal ein Beispiel geben, da ich in meiner Tabelle ungefähr 20 werte prüfen muss.

Beispiel:

CASE(author = 'Hans', 'Schlecht',NULL) ,
CASE(author = 'Dieter', 'Normal',NULL.)
....

Vielen Dank im voraus.

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 19:42 Uhr von Ilja veröffentlicht.

yo,

> Könntest du mir für den CASE Fall bitte mal ein Beispiel geben, da ich in meiner Tabelle ungefähr 20 werte prüfen muss.

CASE author
    WHEN 'Hans' THEN 'Schlecht'
    WHEN 'Dieter' THEN 'Normal'
    ELSE 'alle_anderen'
END CASE

Ilja

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 19:56 Uhr von Paul veröffentlicht.

Also müsstet die Syntax grundsätzlichfolgendermaßen lauten:


UPDATE  <<tabelle>>
SET <<Spalte zu updaten>> =
CASE <<Spalte des Case>>
    WHEN "Fall1" THEN "Ergebnis"
    ELSE "Ergebnis"
END CASE

WHERE <<Spalte des Case>>
IN (
<<alle Fälle>
)

Ist vielleicht ein wenig unglücklich formuliert, aber irgendiwe klaptt das in dieser form nicht.
Bekomme FM:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 21:44 Uhr von Ilja veröffentlicht.

yo,

wenn du schon einen syntaxfehler bekommst, was hälst du von der idee, auch die genaue anweisung uns zu sagen, welche die fehlermeldung verursacht hat, oder gefällt dir die blaue schrift hier nicht, dass du mit informationen sparen willst ?

Ilja

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 21:58 Uhr von Paul veröffentlicht.

Sorry ;)

SQL Befehl:

UPDATE t_buch
SET buch=
CASE author
    WHEN 'Hans' THEN 'GUT
    WHEN 'Werner' THEN 'Schlecht'
    ELSE 'normal'
END CASE


WHERE author
IN (
'GUT'
'Schlecht'
'normal'
)

Fehlermeldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE

WHERE author
IN (
'GUT'
'Schlecht'
'normal'
) at line 7

UPDATEmit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 23:12 Uhr von Ilja veröffentlicht.

yo,

der fehler liegt wohl in den fehlenden kommas

WHERE author IN ('GUT', 'Schlecht', 'normal')

Ilja

UPDATE mit mehreren WHERE

Der folgende Beitrag wurde am 23. 02. 2007, 23:45 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> END CASE
> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE

Vergleich doch mal deinen Versuch mit der im Handbuch angegebenen Syntax.


echo "$verabschiedung $name";

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4